要将C++的二分查找函数修改为左闭右开区间,只需要稍微调整一下判断条件即可。
以下是一个将二分查找函数修改为左闭右开区间的示例代码:
int binarySearch(vector<int>& nums, int target) {
int left = 0, right = nums.size(); // 左闭右开区间
while (left < right) {
int mid = left + (right - left) / 2;
if (nums[mid] == target) {
return mid;
} else if (nums[mid] < target) {
left = mid + 1;
} else {
right = mid;
}
}
return -1;
}
在这个代码中,将右边界right
初始化为nums.size()
,同时在更新右边界时使用right = mid
,这样就可以实现左闭右开的区间范围。