题目
35. 搜索插入位置
思路
- 类似在1-100中猜数字,用二分法最多只要猜7次就可以得到答案
- 这题也可以利用二分法不断向target逼近
- 我们可以将 target 存在 和 不存在 两种结果整合在一个判断中,即
target <= nums[mid]
代码
class Solution {
public int searchInsert(int[] nums, int target) {
int left = 0;
int right = nums.length - 1;
int res = -1;
while (left <= right) {
int mid = ((right - left) >> 1) + left;
if (target <= nums[mid]) {
res = mid;
right = mid - 1;
} else {
left = mid + 1;
}
}
return res;
}
}
复杂度分析
- 时间复杂度:\(O(logN)\),其中 N 为数组长度
- 空间复杂度:\(O(1)\)
相关文章:
-
2021-12-27
-
2022-01-20
-
2021-08-27
-
2021-12-10
-
2022-12-23
-
2021-09-22
-
2021-10-29
-
2021-05-02