已解决
LeetCode分支-搜索插入位置
来自网友在路上 160860提问 提问时间:2023-10-26 01:20:10阅读次数: 60
最佳答案 问答题库608位专家为你答疑解惑
description
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
请必须使用时间复杂度为 O(log n) 的算法。
示例 1:
输入: nums = [1,3,5,6], target = 5
输出: 2
示例 2:
输入: nums = [1,3,5,6], target = 2
输出: 1
示例 3:
输入: nums = [1,3,5,6], target = 7
输出: 4
提示:
1 <= nums.length <= 104
-104 <= nums[i] <= 104
nums 为 无重复元素 的 升序 排列数组
-104 <= target <= 104
idea
算法真是优雅的艺术~虽然我还很粗糙!
搜索指定数据位置,找不到则返回需要插入的位置。
因为加了小小的变动:找不到返回应该插入的位置。已知数组升序,我们可以把问题转换为找到首个大于等于target的位置
solution
class Solution {public int searchInsert(int[] nums, int target) {int left = 0, right = nums.length - 1, ans = nums.length;while(left <= right){int mid = (left + right) / 2;if(target > nums[mid]) left = mid + 1;else{ans = mid;right = mid - 1;} }return ans;}
}
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"LeetCode分支-搜索插入位置":http://eshow365.cn/6-24627-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: APP逆向基础(APK流程)
- 下一篇: Kafka 自动配置部署信息的脚本记录