二分法之思考与模板总结

学习与思考:
最近被二分虐的死去活来,通过广泛阅读各种大佬的总结和模板,自己整理一下心得:

  1. 理解二分的本质。

这也是我最近学习宫水三叶大佬的文章悟出的。
二分的本质不是单调,而是两段性。 只要某一段满足某个性质,而另一段不满足,就可以使用二分来求解。
单调只是一个性质,我们从有序数组中找某个数只是二分的应用。

  1. 二分难在细节。

不同的问题写法都有区别,我们最重要的是根据题目能够写出模板,而不是背出模板。
在数组中,我们一般会遇到两种情况,这两种情况本质上是没有区别的:

  • 找到某个固定元素
  • 找到满足条件的 第一个 / 最后一个元素
  1. 二分模板:

网上有两种不同的模板,一种是闭区间,另一种是左开右闭区间。 其中,左开右闭区间的写法更加灵活,更适合情况较为复杂的题目。
「二分」模板其实有两套,主要是根据 check(mid) 函数为 true 时,需要调整的是 l 指针还是 r 指针来判断。

• 当 check(mid) == true 调整的是 l 时:计算 mid 的方式应该为 mid = l + r + 1 >> 1:

	/* che
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值