原创 【力扣】560:和爲K的子數組 | 哈希

題目描述 給定一個整數數組和一個整數 k,你需要找到該數組中和爲 k 的連續的子數組的個數。 輸入:nums = [1,1,1], k = 2 輸出: 2 , [1,1] 與 [1,1] 爲兩種不同的情況。 數組的長度爲 [1,

原创 【力扣】221 最大正方形 |1277 | 動態規劃

1277 統計全爲1的正方形子矩陣 給你一個 m * n 的矩陣,矩陣中的元素不是 0 就是 1,請你統計並返回其中完全由 1 組成的 正方形 子矩陣的個數。 輸入:matrix = [ [0,1,1,1], [1,1,1

原创 【力扣】241:爲運算表達式設計優先級 | 分治算法 | 回溯算法

題目描述 給定一個含有數字和運算符的字符串,爲表達式添加括號,改變其運算優先級以求出不同的結果。你需要給出所有可能的組合的結果。有效的運算符號包含 +, - 以及 * 。 輸入: "2*3-4*5" 輸出: [-34, -14,

原创 【力扣】1175:質數排列 |數學:排列組合

題目描述 請你幫忙給從 1 到 n 的數設計排列方案,使得所有的「質數」都應該被放在「質數索引」(索引從 1 開始)上;你需要返回可能的方案總數。 由於答案可能會很大,所以請你返回答案 模 mod 10^9 + 7 之後的結果即可

原创 【力扣】1010:總持續時間可被60整除的歌曲 | 排列組合

題目描述 在歌曲列表中,第 i 首歌曲的持續時間爲 time[i] 秒。 返回其總持續時間(以秒爲單位)可被 60 整除的歌曲對的數量。 形式上,我們希望索引的數字 i 和 j 滿足 i < j 且有 (time[i] + ti

原创 【力扣】1260:二維網格遷移

題目描述 給你一個 m 行 n 列的二維網格 grid 和一個整數 k。你需要將 grid 遷移 k 次。 每次「遷移」操作將會引發下述活動: 位於 grid[i][j] 的元素將會移動到 grid[i][j + 1]。 位於 g

原创 【力扣】面試08.10:顏色填充 | BFS

題目描述 顏色填充。編寫函數,實現許多圖片編輯軟件都支持的“顏色填充”功能。給定一個屏幕(以二維數組表示,元素爲顏色值)、一個點和一個新的顏色值,將新顏色值填入這個點的周圍區域,直到原來的顏色值全都改變。 說明: image 和

原创 【力扣】面試05.03:翻轉數位

題目描述 給定一個32位整數 num,你可以將一個數位從0變爲1。請編寫一個程序,找出你能夠獲得的最長的一串1的長度。 算法思路 分爲兩種狀態討論,一個是數字n的二進制形式裏沒有0,那麼最長串的長度爲二進制的長度+1 第二種情況是

原创 【力扣】1170:比較字符串最小字母出現頻次 | lambda

題目描述 我們來定義一個函數 f(s),其中傳入參數 s 是一個非空字符串;該函數的功能是統計 s 中(按字典序比較)最小字母的出現頻次。 例如,若 s = “dcce”,那麼 f(s) = 2,因爲最小的字母是 “c”,它出現

原创 【力扣】993:二叉樹的堂兄弟節點 | BFS

題目描述 在二叉樹中,根節點位於深度 0 處,每個深度爲 k 的節點的子節點位於深度 k+1 處。 如果二叉樹的兩個節點深度相同,但父節點不同,則它們是一對堂兄弟節點。 我們給出了具有唯一值的二叉樹的根節點 root,以及樹中兩個

原创 【力扣】239:滑動窗口最大值 | 維護單調隊列

題目描述 給定一個數組 nums,有一個大小爲 k 的滑動窗口從數組的最左側移動到數組的最右側。你只可以看到在滑動窗口內的 k 個數字。滑動窗口每次只向右移動一位。 返回滑動窗口中的最大值。 輸入: nums = [1,3,-1,

原创 【力扣】1029:兩地調度 |貪心

題目描述 公司計劃面試 2N 人。第 i 人飛往 A 市的費用爲 costs[i][0],飛往 B 市的費用爲 costs[i][1]。 返回將每個人都飛到某座城市的最低費用,要求每個城市都有 N 人抵達。 輸入:[[10,20]

原创 【力扣】LCP 07:傳遞消息 | 單向圖

題目描述 小朋友 A 在和 ta 的小夥伴們玩傳信息遊戲,遊戲規則如下: 有 n 名玩家,所有玩家編號分別爲 0 ~ n-1,其中小朋友 A 的編號爲 0 每個玩家都有固定的若干個可傳信息的其他玩家(也可能沒有)。傳信息的關係是

原创 【力扣】1137:第N個泰波那契數 | 遞歸 | 動態規劃 |迭代

題目描述 泰波那契序列 Tn 定義如下: T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0 的條件下 Tn+3 = Tn + Tn+1 + Tn+2 給你整數 n,請返回第 n 個泰波那契數 Tn 的值。 來源:

原创 【力扣】面試03.01:三合一 | 棧

題目描述 三合一。描述如何只用一個數組來實現三個棧。 你應該實現push(stackNum, value)、pop(stackNum)、isEmpty(stackNum)、peek(stackNum)方法。stackNum表示棧下