贵州建网站的公司,网站的建设论文,wordpress首页不显示最新文章,百度容易收录哪些网站给定一个排序数组和一个目标值#xff0c;在数组中找到目标值#xff0c;并返回其索引。如果目标值不存在于数组中#xff0c;返回它将会被按顺序插入的位置。
请必须使用时间复杂度为 O(log n) 的算法。 示例 1:
输入: nums [1,3,5,6], target 5
输出: 2示例 2:
输入:…给定一个排序数组和一个目标值在数组中找到目标值并返回其索引。如果目标值不存在于数组中返回它将会被按顺序插入的位置。
请必须使用时间复杂度为 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] 104nums 为 无重复元素 的 升序 排列数组-104 target 104
class Solution {/**这题还需要解吗太简单了吧解题思路使用二分查找的方式,如果存在直接返回如果不存在找第一个小于等于它的位置最后返回这个位置1也可以找第一个大于等于它的位置然后返回这个位置-1,但是这样处理比较麻烦因为可能出现没有大于它的*/public int searchInsert(int[] nums, int target) {int left 0;int right nums.length - 1;int ans -1;while(left right) {int mid left ((right - left) 1);//找到就返回索引值if(nums[mid] target) {return mid;} else if(nums[mid] target) {right mid - 1;} else {/**找到了大于等于它的先计一个答案后面找小于等于它更接近的有可能会更新它*/ans mid;left mid 1;}}return ans 1;}
}