[Leetcode]【转载】[二分查找]相关题目汇总/分析/总结

博客

https://www.cnblogs.com/kukri/p/8484992.html


二分查找的框架:

start=0

end=len(nums)-1

mid=start+(end-start)//2   (这样写为了防止溢出,直接写end+start可能溢出)

while start+1<end  (注意是小于不是小于等于,小于等于退不出循环)

 1.Sqrt(x)

youtube链接

https://www.youtube.com/watch?v=JtZBs9Qy_6M


思路:一定要注意这里是两个杠杠,虽然我也不知道为啥。开始总是不通过,变成了两个杠杠就通过了。。。

我觉得一样啊,后面用了int,变不变两个杠杠应该都一样的。。。诡异

2.Search in Rotated Sorted Array 

(leetocde33)


思路:二分查找

youtube网址:https://www.youtube.com/watch?v=KSZfO65J6hg

因为是分成了两段,所以可以这样做:根据题意,一定是有一部分是升序的(前半段还是后半段)。判断target是属于前半段,还是后半段,假如是属于前半段的,对前半段进行二分。


例如 [4,5,6,7,1,2].前半段是[4,5,6]是正常的,后半段是[6,7,1,2]不是正常的,不能进行二分,只能对前半段正常的进行二分。

3.Search in Rotated Sorted Array (2)

(leetocde81)



4.Find Minimum in Rotated Sorted Array(leetcode 153)

思路:和上一题查找差不多。但是,这个题,由于是找最小值,只看后半部分就可以?(没懂,为啥)

例如 4 5 6 7 0 1 2;4 5 6 0 1 2 3

网址:https://www.youtube.com/watch?v=PK4JQvgo2ZA

二分搜索,时间复杂度 N(log(n)),


5.Find Minimum in Rotated Sorted Array II(leetcode 154)

思路:和上一个题非常类似,多了一个nums[mid]=nums[end]的情况,只要end=end-1就可以了


6.Find Peak Element(leetcode 162)

youtube地址:

https://www.youtube.com/watch?v=hvS_2F2jycQ

这种二分问题的框架,如下图红色圈出的所示。

开始:

start=0;end=len(nums)-1..

中间 :

while 循环

最后:

if 判断一下输出












"--------牛顿法------------”










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值