点击查看代码
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;
}
};