LintCode 14 二分查詢

2021-08-14 23:29:33 字數 659 閱讀 6946

給定乙個排序的整數陣列(公升序)和乙個要查詢的整數target,用o(logn)的時間查詢到target第一次出現的下標(從0開始),如果target不存在於陣列中,返回-1。

樣例

在陣列 [1, 2, 3, 3, 4, 5, 10] 中二分查詢3,返回2。

挑戰

如果陣列中的整數個數超過了2^32,你的演算法是否會出錯?

根據題目描述可以很明確的知道本題是要用到二分法,不過是需要找到第一次出現的下標且時間複雜度要為o(logn)。

class solution  else 

}if(array[low] == target) else

}};

對於挑戰中提到的問題,個人認為可以用到指標指向首尾,然後向中間移動知道兩個指標相遇這就是中間的位置了。到網上查有人說可以將array拆成乙個個小陣列。

在win32下,int的範圍是 -231

~ 231

- 1,即-2147483648~2147483647.

LintCode 14 二分查詢

給定乙個排序的整數陣列 公升序 和乙個要查詢的整數target,用o logn 的時間查詢到target第一次出現的下標 從0開始 如果target不存在於陣列中,返回 1。在陣列 1,2,3,3,4,5,10 中二分查詢3,返回2。如果陣列中的整數個數超過了 2 32 你的演算法是否會出錯?在有序...

LintCode 14(二分查詢)

lintcode系列,第14題,題目 給定乙個排序的整數陣列 公升序 和乙個要查詢的整數target,用o logn 的時間查詢到target第一次出現的下標 從0開始 如果target不存在於陣列中,返回 1。樣例 樣例 1 輸入 1,4,4,5,7,7,8,9,9,10 1 輸出 0 樣例解釋 ...

lintcode 14 二分查詢

給定乙個排序的整數陣列 公升序 和乙個要查詢的整數target,用o logn 的時間查詢到target第一次出現的下標 從0開始 如果target不存在於陣列中,返回 1。樣例在陣列 1,2,3,3,4,5,10 中二分查詢3,返回2。挑戰如果陣列中的整數個數超過了2 32,你的演算法是否會出錯?...