在乙個排序陣列中找乙個數,返回該數出現的任意位置,如果不存在,返回-1
樣例
給出陣列 [1, 2, 2, 4, 5, 5].
對於 target = 2, 返回 1 或者 2.
對於 target = 5, 返回 4 或者 5.
對於 target = 6, 返回 -1.
//最基礎的二分查詢演算法
#include
#include
#include
using
namespace
std;
class solution
int start=0;
int end=n-1;
while(start+1
< end)else
if(a[mid] < target)else
} if(a[start] == target)
if(a[end] == target)
return -1;
}};
給定乙個排序的整數陣列(公升序)和乙個要查詢的整數target,用o(logn)的時間查詢到target第一次出現的下標(從0開始),如果target不存在於陣列中,返回-1。
樣例
在陣列 [1, 2, 3, 3, 4, 5, 10] 中二分查詢3,返回2。
加了一段往前搜尋第一次出現的**。。。好像不太優雅
#include
#include
#include
using
namespace
std;
class solution
int start=0;
int end=n-1;
while(start+1
< end)
return mid;
}else
if(array[mid] < target)else
} if(array[start] == target)
if(array[end] == target)
return -1;
}};
LintCode 二分查詢
題目 給定乙個排序的整數陣列 公升序 和乙個要查詢的整數target,用o logn 的時間查詢到target第一次出現的下標 從0開始 如果target不存在於陣列中,返回 1。樣例在陣列 1,2,3,3,4,5,10 中二分查詢3,返回2。public int binarysearch int ...
LintCode 14 二分查詢
給定乙個排序的整數陣列 公升序 和乙個要查詢的整數target,用o logn 的時間查詢到target第一次出現的下標 從0開始 如果target不存在於陣列中,返回 1。在陣列 1,2,3,3,4,5,10 中二分查詢3,返回2。如果陣列中的整數個數超過了 2 32 你的演算法是否會出錯?在有序...
LintCode 14 二分查詢
給定乙個排序的整數陣列 公升序 和乙個要查詢的整數target,用o logn 的時間查詢到target第一次出現的下標 從0開始 如果target不存在於陣列中,返回 1。樣例 在陣列 1,2,3,3,4,5,10 中二分查詢3,返回2。挑戰 如果陣列中的整數個數超過了2 32,你的演算法是否會出...