class Solution {
public:
int binarySearch(vector<int>& nums, int target, int left, int right) {
while (left <= right) {
int mid = left + (right - left) / 2; // 避免潜在的溢出
if (nums[mid] == target) {
return mid; // 找到目标
} else if (nums[mid] > target) {
right = mid - 1; // 向左搜索
} else {
left = mid + 1; // 向右搜索
}
}
// 当循环结束时,left 是目标应插入的位置
return left; // 返回插入位置
}
int searchInsert(vector<int>& nums, int target) {
return binarySearch(nums, target, 0, nums.size() - 1);
}
};
LeetCode Hot100. 35.搜索插入位置
最新推荐文章于 2024-10-05 12:29:44 发布