二分查詢解題模版

2021-10-25 11:09:48 字數 627 閱讀 4851

常規:樸素的二分查詢(在一維陣列中查詢乙個數,有返回索引,無則返回-1)

int

binary_search

(int arr,

int n,

int val)

else

if(arr[mid]

>val)

else

}return-1

;}

變體1:可以總結為00001111問題,查詢滿足條件的第乙個1

int

binary_search

(int arr,

int n)

else

}return head/tail;

}

leetcode 題目:35. 搜尋插入位置

變體2:可以總結為11110000問題,查詢滿足條件的最後乙個1

```cpp

intbinary_search

(int arr,

int n)

else

}return head/tail;

}

leetcode題目:

69. x 的平方根](

二分查詢模版

用於一般的二分查詢 public static intbinsearch2 int arr,int target if arr mid target else return 1 1 為啥是 lo mid 1,hi mid 1 而不是 lo mid,hi mid 呢?看迴圈條件 while lo hi...

二分查詢模版 必背

注意點 跳出時都有lo 1 hi統一返回lo 1或hi lo 1 and hi nums.size 和 lo 0 and hi nums.size 1取中時一致 為什麼返回 lo 1 而不是 hi 退出迴圈時有 lo 1 hi 模板開始時將 lo,hi 看做是乙個開區間,通過不斷二分,最終這個區間中...

二分查詢 整數 模版

一段區間,定義一種性質使得區間被一分為二 二分查詢即為尋找滿足性質或不滿足性質的區間的邊界 區間被劃分為 l,mid 和 mid 1,r intbsearch 1 int l,int r 區間被劃分為 l,mid 1 和 mid,r intbsearch 2 int l,int r return l...