leetcode——第704题——二分查找

题目:
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。

class Solution {
public:
    // int search(vector& nums, int target) 
    // {
    //     // 区间定为 [left, right]
    //     int left = 0, right = nums.size() - 1;
    //     while(left <= right)
    //     {
    //         // 注意 middle 需要加 left 这个竟然忘记了
    //         int middle = left + (right - left) / 2;
    //         if(nums[middle] > target)   right = middle - 1;
    //         else if(nums[middle] < target)  left = middle + 1;
    //         else    return middle;
    //     }
    //     return -1;
    // }

    int search(vector& nums, int target) 
    {
        // 区间定为 [left, right)
        int left = 0, right = nums.size();
        while(left < right)
        {
            int middle = left + (right - left) / 2;
            if(nums[middle] > target)   right = middle;
            else if(nums[middle] < target)  left = middle + 1;
            else    return middle;
        }
        return -1;
    }
};

你可能感兴趣的:(#,类型总结之——数组篇,#,类型总结之——二分查找法,leetcode,二分法)