当前位置:首页 / 文章测试 / #704. 二分查找

#704. 二分查找

开始打字练习

class Solution {

public:

int search(vector<int>& nums, int target) {

int left = 0;

int right = nums.size() - 1; // 定义target在左闭右闭的区间里,[left, right]

while (left <= right) { // 当left==right,区间[left, right]依然有效,所以用 <=

int middle = left + ((right - left) / 2);// 防止溢出 等同于(left + right)/2

if (nums[middle] > target) {

right = middle - 1; // target 在左区间,所以[left, middle - 1]

} else if (nums[middle] < target) {

left = middle + 1; // target 在右区间,所以[middle + 1, right]

} else { // nums[middle] == target

return middle; // 数组中找到目标值,直接返回下标

}

}

// 未找到目标值

return -1;

}

};

声明:以上文章均为用户自行发布,仅供打字交流使用,不代表本站观点,本站不承担任何法律责任,特此声明!如果有侵犯到您的权利,请及时联系我们删除。