leetcode 704

点击查看代码
class Solution {
public:
    int search(vector<int>& nums, int target) {
        int left = 0;
        int right = nums.size();
        int middle;
        while (left < right) {
            middle = left + (-left+right)/2;
            if (nums[middle] > target) //  middle大于target因为是升序数组需要搜索的数组是左半边数组,数组的右边界需要更新
            {
                right = middle; // middle 已经在前边一行比较过了
            } else if( nums[middle] < target) { // middle 小于target, target 在更大的右边的半个数组中,需要更新搜索数组的左边界
                left = middle+1;
            } else return  middle;
            
        }
        return -1;
    }
};
点击查看代码
class Solution {
public:
    int search(vector<int>& nums, int target) {
        int left = 0;
        int right = nums.size() - 1;
        int middle;
        while (left <= right) {
            middle = left + (-left+right)/2;
            if (nums[middle] > target) // 如果middle大于target因为是升序数组所以右边的更大
            {
                right = middle - 1; // middle 已经在前边一行比较过了
            } else if( nums[middle] < target) { // middle 小于target, target 更大在右边的半个数组中,需要更新搜索数组的左边界
                left = middle + 1;
            } else return  middle;
            
        }
        return -1;
    }
};
posted @ 2025-07-17 18:48  wangshaodong  阅读(4)  评论(0)    收藏  举报