題目:
題目比較簡單,就是通過二分法找到數字。因爲是給出第一次出現的下標,所以array[mid]>=target是比較好的選擇。
代碼如下:
class Solution {
public:
/**
* @param nums: The integer array.
* @param target: Target number to find.
* @return: The first position of target. Position starts from 0.
*/
int binarySearch(vector<int> &array, int target) {
// write your code here
int left,right,mid;
left=0;
right=array.size()-1;
mid=(left+right)/2;
while(left<right)
{
if(array[mid]>=target)
right=mid;
else
left=mid+1;
mid=(left+right)/2;
}
if(array[mid]==target)
return mid;
else
return -1;
}
};