Q2 LeetCode35 搜索插入位置

          //有序查找,无重复元素,要求时间复杂度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 }
复制代码

 

posted @   清川1  阅读(2)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示