leetcode——Search Insert Position 二分查找 binary search

这篇博客介绍了如何解决LeetCode上的Search Insert Position问题,该问题通过二分查找法在有序数组中找到目标值的位置。文章详细解释了二分查找的逻辑,包括设置low和high变量,以及根据比较结果更新搜索范围。同时提醒注意边界情况和返回值的确定,强调了对未排序数组进行排序的必要性。
摘要由CSDN通过智能技术生成

Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.

You may assume no duplicates in the array.

Here are few examples.
[1,3,5,6], 5 → 2
[1,3,5,6], 2 → 1
[1,3,5,6], 7 → 4

[1,3,5,6], 0 → 0

      这道题是一道二分查找的题,二分查找的通式就是设置两个变量low,high记录位置,然后每次计算(low+high)/2,比较中间位置的值和目标值之间的大小,如果目标值大,那就说明目标值在中间位置的右边,将high=mid+1;如果目标值小,那就说明目标值在中间位值得左边,将low=mid-1;直到low>high,停止查找 ,返回low。

     具体情况具体分析,上述方法也不是万能的,需要用特例来测试自己的程序,比如【1】 target=0,1,2时分别返回什么。

     二分法最要注意的一点就是不要漏掉每一个有可能的数,即low 和high 的更新,到底要不要- +1,还有返回时候的位置坐标。

     还有二分法基本上是对排好序的数列来做,如果没有排序可以先用sort排序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值