您的位置:首页 > 游戏 > 手游 > urfread刷算法题day4|35. 搜索插入位置

urfread刷算法题day4|35. 搜索插入位置

2024/10/5 20:28:00 来源:https://blog.csdn.net/m0_69886881/article/details/139900871  浏览:    关键词:urfread刷算法题day4|35. 搜索插入位置

题目描述

往有序数组插入一个值,如果已有则返回它的索引,如果没有则返回应该插入的位置(也是一个索引)。
在这里插入图片描述

传送门:35. 搜索插入位置

思路

使用二分查找,如果数组中存在,找到之后,返回mid
如果不存在,那结束查询时,左指针、右指针和mid与应该插入的位置有什么关系?

[1,3,5,6]

可以手动模拟二分查找,可以看到不管是想插入的是7、0、2,我们应该返回的位置的索引都是left

代码

class Solution {public int searchInsert(int[] nums, int target) {return binarySearch(nums,target,0,nums.length-1);}public int binarySearch(int[]nums,int target,int left,int right){int mid=0;while(left<=right){mid=(left+right)/2;if(nums[mid]==target)return mid;if(nums[mid]>target)right=mid-1;else left=mid+1;}return left;}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com