Leetcode 笔记: 二分法

本文详细解析了Liweiwei的二分查找模板,强调了模板中的关键点:左闭右闭原则、循环条件以及mid值的计算。讨论了可能导致死循环的情况,并通过实例分析了针对不同题型如何避免死循环。同时提到了LeetCode上的二分法相关题目,供读者深入学习。
摘要由CSDN通过智能技术生成

Liweiwei的模板

重点阅读这篇文章就可以了:liweiwei
相应的视频:liweiwei。其中8-1,8-7和8-8是重点。

liweiwei文章的最后,列有三类题型,及相应的题目。

对liweiwei模板的几点体会:
    1)该模板基本是采用“左闭右闭”。即L=最左的一个,R=最右的一个。
    2)while(L<R) 还是 while(L<=R)
               while(L<=R):    目标在循环体内能找到。如果循环体结束,表示没有找到结果。
                                       if else 语句分三段判断(单独判断:mid==目标 )。
               while(L<R):      循环体结束时,结果就是L。此时L=R。
                                       if else 语句分二段判断(不单独判断:mid==目标 )。
    3)mid 的取值是 L+(R-L)/2 还是 L+(R-L+1)/2 ? (取错了会导致死循环)
              死循环只会发生在
                      a)  只剩2个元素的时候,即(L+1) ==R。
                      b)  if else 语句分二段判断,
              此时有两种题型:
                      题型1 -- 小于某数的最大的那个
                            L=mid, R=mid-1
                            采用 mid = L+(R-L)/2  -- 会死循环
                            采用 mid = L+(R-L+1)/2  -- 不会死循环
                      题型2 -- 大于某数的最小的那个
                            L=mid+1, R=mid
                            采用 mid = L+(R-L)/2  -- 不会死循环
                            采用 mid = L+(R-L+1)/2  -- 会死循环

Leetcode 二分法题库

        中文
        英文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值