力扣 二分應用題

2022-05-09 03:09:09 字數 821 閱讀 9803

1.875. 愛吃香蕉的珂珂,傳統二分,左閉右開,返回left/right即可。

2.222. 完全二叉樹的節點個數,利用完全二叉樹結合二分,+位運算,注意level=0的特殊情況,返回left-1。需要靈活運用二分查詢。

3.69. x 的平方根,上限粗略定為x,注意迴圈條件、l/r的賦值、返回結果。

4.744. 尋找比目標字母大的最小字母,比較基礎的二分的方法,right指向size長度即可。

5.540. 有序陣列中的單一元素,判斷mid與mid-1位置更新left和right;只遍歷陣列中的偶數下標。有點難度。

6.278. 第乙個錯誤的版本,稚嫩了,right不用n+1。

8.1631. 最小體力消耗路徑,二分思路結合bfs/dfs,初始化為消耗最小值,最大值,對mid求00和m*n-1是否能夠連通,以此來減小搜尋範圍得出答案。

9.778. 水位上公升的泳池中游泳,與上題類似,二分結合bfs/dfs判斷連通性,上題是控制邊的權重,此題是控制點的權重不超過某值t,visit陣列來標記是否訪問過,判斷連通性。

10.378. 有序矩陣中第 k 小的元素,有序矩陣中的查詢,利用行有序和列有序進行二分。(複習時想不到時這種解法,挺難的)在判斷有多少旋轉陣列專題:

1.1 153. 尋找旋轉排序陣列中的最小值,找到無序的部分,mid和right比較,right初始化為size-1,這裡是陣列內部之間比較,不是與外部target比較,所以即使初始化為size-1,while迴圈也無需=號。

2.189. 旋轉陣列,這個不是二分的解法,因為是有關旋轉的所以放到了這裡。reverse之後reverse區域性;通過記錄pre防止覆蓋,通過start來確認是否多次迴圈。牛。

力扣 二分查詢

1.確定二分的邊界 2.編寫二分的 框架 3.設計乙個check 性質 4.判斷一下區間如何更新 5.如果更新方式時l mid,r mid 1,那麼在算mid的時候加1 includeusing namespace std int mysqrt int x return l int main ret...

力扣LeetCode刷題日記(二)

給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwkew 輸出 3 ...

力扣第二題 C 版

給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例輸入 2 4 3 5 6 4 輸出 7...