leetcode高頻題筆記之二分查詢

2021-10-23 01:38:43 字數 2909 閱讀 9944

去除x0和x1的情況,然後從1到x進行二分查詢

public

class

solution

return right;

}}

牛頓迭代法:

參考題解

二分查詢

class

solution

return

false;}

}

牛頓迭代法

迭代求算數平方根,如果算數平方根的平方還是num,說明是完全平方數

public

class

solution

return a * a == num;

}}

二分查詢:每次查詢必有一邊是有序的!找到有序的一邊,判斷target在不在裡面

class

solution

else

}else

else}}

//沒找到

二分查詢:

將二維陣列當成一維進行查詢

public

class

solution

else

}return

false;}

}

右上角為起點的查詢,查詢狀態樹是一棵二叉搜尋樹

如果nums[left] <= nums[right]說明這一段有序,且是我們選擇的包含拐點的部分

如果沒有序,二分查詢無序部分

class

solution

int mid =

(left + right)

>>1;

//有序在左邊,就去右邊查詢

題意:給定乙個迴圈有序的字元陣列 letters 和乙個字元 target,要求找出 letters 中大於 target 的最小字元,如果

找不到就返回第 1 個字元。

針對偶數字的二分查詢

計算中點,如果中點下標為奇數,讓其減1,保證mid是每一組兩個數的開頭

比較mid下標值和mid+1下標值,如果相同說明這個數有兩個,left右移兩位,否則這個位置及之前出現了1個數的,將right設定為mid

二分查詢,如果查詢節點是錯誤版本,則第乙個錯誤點在當前節點及之前;如果查詢節點不是錯誤版本,則第乙個錯誤點在當前節點之後

通過二分查詢找到target,然後移動兩個指標找到左右邊界

public

class

solution

while

(r +

1< nums.length && nums[r]

== nums[r +1]

)return

newint

;}else

if(nums[mid]

> target)

else

}return

newint;}}

LeetCode高頻題 二叉樹(二)

我開了乙個leetcode會員,選擇了一些高頻率題目。這個系列是希望幫助大家每天花30分鐘的題目了解面試高頻題,讓大家面試更加游刃有餘。本期我們講解三道樹的簡單題。上期我們說到關於樹的題目總是會跟遞迴扯上關係,而本期我們從遞迴入手,引出迭代的做法,比如說利用佇列 棧等資料結構代替遞迴操作。本期所用的...

面試高頻leetcode演算法題

持續更新 def quick rank nums if len nums 1 return nums left,right mid nums 0 for i in nums 1 if i mid else return quick rank left mid quick rank right 給定乙...

LeetCode高頻題 鍊錶(一)

我開了乙個leetcode會員,選擇了一些高頻率題目。這個系列是希望幫助大家每天花30分鐘的題目了解面試高頻題,讓大家面試更加游刃有餘。本期我們開始講解鍊錶的題目,先介紹幾道簡單題熱熱身。本期所用的鍊錶的資料結構均如下 public class listnode 題意 刪除鍊錶中等於給定值 val ...