【704. 二分查找】https://leetcode-cn.com/problems/binary-search/
我的解决方案:
class Solution {
public:
int search(vector<int>& nums, int target) {
int start_idx = 0, end_idx = nums.size() - 1, mid_idx;
int start_num, end_num, mid_num;
while (start_idx <= end_idx) {
start_num = nums[start_idx];
end_num = nums[end_idx];
if (start_num == target)
return start_idx;
else if (end_num == target)
return end_idx;
else {
mid_idx = (start_idx + end_idx) / 2;
mid_num = nums[mid_idx];
if (mid_num == target)
return mid_idx;
else if (mid_num < target) {
start_idx = mid_idx + 1;
end_idx = end_idx - 1;
}
else {
start_idx = start_idx + 1;
end_idx = mid_idx - 1;
}
}
}
return -1;
}
};