leetcode刷題總結551 600

2022-06-18 07:09:08 字數 2106 閱讀 4846

551. 學生出勤記錄 i

描述:

思路:字串包含a的個數 和  是否包含「lll」

552. 學生出勤記錄 ii

描述:

思路:動態規劃。dp[0-n][0-1 a][0-1-2 l]。 狀態轉移根據題意分情況  新增p時候, 新增a的時候  l的時候。。

553. 最優除法

描述:

思路:題中說全部都是正整數,那麼第1個數就是被除數。後面的所有就是除數。(被除數最大,除數最小)。

554. 磚牆

描述:

思路:對於每個間隔進行統計。找到最小的就行。

556. 下乙個更大元素 iii

描述:

思路:轉換為字串,總後往前,通過單調棧找到突然變小的值,然後在後面找所有大的最小i的大於它的,交換,然後交換那個突然變小的地方的後面。

560. 和為k的子陣列

描述:

思路:字首和。hashmap.當出現某乙個字首和的時候,看這個字首和-k是否存在。

561. 陣列拆分 i

描述:

思路:排序。nums[i]+[i+2]+[i+4]...

564. 尋找最近的回文數

描述:

思路:保留前一半。然後前一半+1;前一半;前一半-1 分別考慮求距離。

565. 陣列巢狀

描述:

思路:遍歷。遍歷的時候需要設定乙個visited陣列,防止重複時間消耗。

567. 字串的排列

描述:思路:滑動視窗+hashset.

575. 分糖果

描述:思路:去重之後有多少種. 和  陣列的長度除以2.  的最小。

581. 最短無序連續子陣列

思路:從前往後,維護乙個max和r  當當前元素小於max的時候,證明當前元素應該在他前面,那麼這個下標就不是他本來的位置,那麼r就換成當前的座標,否則更新max的值保證max一直最大。同理從後往前更新min和l。

583. 兩個字串的刪除操作

描述:思路:兩個單詞的最長子序列。然後len1+len2-2*len(lcs)。 通過動態規劃求最長子序列。dp[i][j]當i==j.的時候,它等於dp[i-1]j-i]+1. 否則就是[i-1][j],[i]j-1的最大值,

592. 分數加減運算

描述:思路:通分。求分子分母。

593. 有效的正方形

描述:思路: 計算邊長和和對角線是否相等。

594. 最長和諧子串行

描述思路:hashmap儲存。然後對於hashmap中的某個元素看這個元素的+1的個數和自己的個數。

598. 範圍求和 ii

描述;思路:找到橫座標和縱座標最小的,然後返回次數。

599. 兩個列表的最小索引總和

描述:思路:hashmap《string,index》

600. 不含連續1的非負整數

描述:思路:判斷乙個數是否連續。將這個數和這個數右移後的樹進行 & 運算 看是否為0.

LeetCode刷題之551 學生出勤記錄 I

我不知道將去向何方,但我已在路上!示例 1 輸入 ppallp 輸出 true示例 2 輸入 ppalll 輸出 falseclass solution object defcheckrecord self,s type s str rtype bool i,j 0,0for k in range ...

LeetCode刷題總結

123 4567 891011 12 元素交換 swap a 1 a 3 sort排序 sort a.begin a.end 陣列顛倒 reverse a.begin a.end 陣列元素置為0 memset a,0,a.size 陣列取值 a.push back 定義二維陣列 vector vec...

LeetCode刷題總結

123 4567 891011 12 元素交換 swap a 1 a 3 sort排序 sort a.begin a.end 陣列顛倒 reverse a.begin a.end 陣列元素置為0 memset a,0,a.size 陣列取值 a.push back 定義二維陣列 vector vec...