原创 [LeetCode] 892、三維形體的表面積

題目描述 在 N * N 的網格上,我們放置一些 1 * 1 * 1 的立方體。每個值 v = grid[i][j] 表示 v 個正方體疊放在對應單元格 (i, j) 上。請你返回最終形體的表面積。 輸入:[[1,2],[3,4]

原创 [LeetCode] 409、最長迴文串

題目描述 給定一個包含大寫字母和小寫字母的字符串,找到通過這些字母構造成的最長的迴文串。在構造過程中,請注意區分大小寫。比如 "Aa" 不能當做一個迴文字符串。 輸入: "abccccdd" 輸出: 7 解釋: 我們可以構造的最長

原创 Kaggle——ASHRAE 能源消耗預測,排名1%

這是在2019年11~12月期間,我參加的一個kaggle比賽——ASHRAE - Great Energy Predictor III 最終成績:排名前1%,22/3614。差一點點就金牌了,感覺前面的名次每前進一名都跟煉丹似的

原创 [LeetCode] 1071、字符串的最大公因子

題目描述 對於字符串 S 和 T,只有在 S = T + ... + T(T 與自身連接 1 次或多次)時,我們才認定 “T 能除盡 S”。返回最長字符串 X,要求滿足 X 能除盡 str1 且 X 能除盡 str2。 輸入:st

原创 [LeetCode] 1111、有效括號的嵌套深度

題目描述 有效括號字符串類型與對應的嵌套深度計算方法如下圖所示: 給你一個「有效括號字符串」 seq,請你將其分成兩個不相交的有效括號字符串,A 和 B,並使這兩個字符串的深度最小。 不相交:每個 seq[i] 只能分給 A

原创 [LeetCode] 876、鏈表的中間結點

題目描述 給定一個帶有頭結點 head 的非空單鏈表,返回鏈表的中間結點。如果有兩個中間結點,則返回第二個中間結點。 輸入:[1,2,3,4,5,6] 輸出:此列表中的結點 4 (序列化形式:[4,5,6]) 解題思路 快慢指針

原创 [LeetCode] 113、路徑總和 II

題目描述 給定一個二叉樹和一個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。 示例: 給定如下二叉樹,以及目標和 sum = 22, 5 / \

原创 [LeetCode] 65、有效數字

題目描述 驗證給定的字符串是否可以解釋爲十進制數字。 "1 a"` => `false` `"2e10"` => `true` `" -90e3 "` => `true 解題思路 《劍指offer》第20題。注意: 小數點前

原创 [LeetCode] 365、水壺問題

題目描述 有兩個容量分別爲 x升 和 y升 的水壺以及無限多的水。請判斷能否通過使用這兩個水壺,從而可以得到恰好 z升 的水?如果可以,最後請用以上水壺中的一或兩個來盛放取得的 z升 水。 你允許: 裝滿任意一個水壺; 清空任意

原创 [LeetCode] 999、車的可用捕獲量

題目描述 在一個 8 x 8 的棋盤上,有一個白色車(rook)。也可能有空方塊,白色的象(bishop)和黑色的卒(pawn)。它們分別以字符 “R”,“.”,“B” 和 “p” 給出。大寫字符表示白棋,小寫字符表示黑棋。車按國

原创 [LeetCode] 836、矩形重疊

題目描述 矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 爲左下角的座標,(x2, y2) 是右上角的座標。給出兩個矩形,判斷它們是否重疊並返回結果。 輸入:rec1 = [0,0,2,2], r

原创 [LeetCode] 460、LFU緩存

題目描述 請你爲 最不經常使用(LFU)緩存算法設計並實現數據結構。它應該支持以下操作:get 和 put。 // 在此問題中,當存在平局(即兩個或更多個鍵具有相同使用頻率)時,應該去除 最近 最少使用的鍵。 LFUCache c

原创 [LeetCode] 641、設計循環雙端隊列

題目描述 設計循環雙端隊列。 解題思路 這道題的前導問題是「力扣」第 622 題:設計循環隊列。在實現上幾乎是一模一樣的,要注意的地方有: 數組實現循環雙端隊列: 在數組裏的操作,我們參考“動態數組”的實現來完成,主要是爲了讓

原创 [LeetCode] 945、使數組唯一的最小增量

題目描述 給定整數數組 A,每次 move 操作將會選擇任意 A[i],並將其遞增 1。返回使 A 中的每個值都是唯一的最少操作次數。 輸入:[3,2,1,2,1,7] 輸出:6 解釋:經過 6 次 move 操作,數組將變爲 [

原创 [LeetCode] 343、整數拆分

題目描述 給定一個正整數 n,將其拆分爲至少兩個正整數的和,並使這些整數的乘積最大化。 返回你可以獲得的最大乘積。 輸入: 10 輸出: 36 解釋: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。 參考代碼 和