搜索插入位置
2026年5月1日大约 1 分钟
搜索插入位置
使用的方法
二分查找
解题思路
- 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
- 你可以假设数组中无重复元素。
- 由于数组是有序的,我们可以使用二分查找来高效地找到目标值的位置。
- 二分查找的基本思想是将数组分成两半,然后比较目标值与中间元素的大小关系。
- 如果目标值等于中间元素,我们就找到了目标值的位置;
- 如果目标值小于中间元素,我们就继续在左半部分进行搜索;
- 如果目标值大于中间元素,我们就继续在右半部分进行搜索。
- 通过不断地将搜索范围缩小,我们可以快速地找到目标值的位置或者者确定它应该插入的位置。
代码实现
class Solution {
public int searchInsert(int[] nums, int target) {
// 二分查找
int left = 0;
int right = nums.length - 1;
while(left <= right){
int mid = (left + right) / 2;
if(nums[mid] == target){
return mid;
} else if(nums[mid] < target){
left = mid + 1;
} else {
right = mid - 1;
}
}
return left;
}
}