题目:
题目比较简单,就是通过二分法找到数字。因为是给出第一次出现的下标,所以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;
}
};