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 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步