lintcode 14. 二分查找

題目:


題目比較簡單,就是通過二分法找到數字。因爲是給出第一次出現的下標,所以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;
    }
};


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章