//有序查找,无重复元素,要求时间复杂度O(logn) //如果有目标元素则返回位置 //如果没有目标元素,最后一次right位置后面就是该插入的位置
第一次提交错误认为最后一次mid位置是插入的位置,其实最后一次right位置才是正确的插入位置(升序数组)
1 class Solution{ 2 public int searchInsert(int[] nums, int target){ 3 //有序查找,要求时间复杂度O(logn) 4 //如果有目标元素则返回位置 5 //如果没有目标元素,最后一次right位置后面就是该插入的位置 6 7 int left=0; 8 int right=nums.length-1; 9 int mid=-1; 10 while(left<=right){ 11 mid=(left+right)/2; 12 if(nums[mid]>target){ 13 right=mid-1; 14 } 15 else if(nums[mid]<target){ 16 left=mid+1; 17 } 18 else{ 19 return mid; 20 } 21 } 22 return right+1; 23 } 24 }
标签:Q2,nums,int,位置,mid,插入,right,LeetCode35 From: https://www.cnblogs.com/cff1/p/18226010