12
返回列表 发新帖
楼主: jijismile
跳转到指定楼层
上一主题 下一主题
收起左侧

[二分/排序/搜索] 分享一个看到binary search 的模板

   
全局:
有一个binary search 101的帖子也很好。
回复

使用道具 举报

🔗
阿笨猪 2022-5-5 02:38:07 | 只看该作者
全局:
yyz20002008 发表于 2022-5-4 12:56
某章的 模板最后double check的时候 还是不太明白怎么想的先返回start再返回end if A[start] = target retu ...

最后答案要么在start要么在end。你需要找左边界,就先查start,再查end。反之相反。如果只是找答案,不在乎左右,那顺序无所谓。
回复

使用道具 举报

🔗
spiritcat 2022-5-5 02:41:21 | 只看该作者
全局:
常用的需要两个模版,二分查找需要数据具有二段性。

假设有x为false,o为true。
情形1:[xxxxxxooooooo],查找第一个True/o的位置,即查找左边界
while l<r:
  m = (l+r)//2
  if check(m):
     r = m
  else:
    l = m + 1

情形2:[oooooxxxxxxxx],查找最后一个True/o的位置,即查找右边界
while l<r:
  m = (l+r+1)//2
  if check(m):
     l = m
  else:
    r = m - 1
回复

使用道具 举报

🔗
xCookies 2022-5-5 03:44:56 | 只看该作者
全局:
说起二分法的模板还真是没有哪家比的过九章的,永远不会死循环,而且到现在还没忘记😂
回复

使用道具 举报

🔗
 楼主| jijismile 2022-5-6 07:14:07 | 只看该作者
全局:
xCookies 发表于 2022-5-4 12:44
说起二分法的模板还真是没有哪家比的过九章的,永远不会死循环,而且到现在还没忘记😂

但是某章的模板 解释起来很费劲 面试官要是问你 你为什么这么写 怎么回答
难道我长期刷题总结出来的?
回复

使用道具 举报

🔗
DLer 2022-5-30 05:53:37 | 只看该作者
全局:
大咪咪长得胖 发表于 2022-5-3 22:52
有个叫五点七线的油管博主也总结了一个万能二分查找公式并且用数学方法验证了其可行性,很不错可以去看看

这个模板太强了 就是面试的时候万一问以来解释起来有点麻烦😢
回复

使用道具 举报

🔗
DLer 2022-5-30 05:55:06 | 只看该作者
全局:
这个帖子已经不在了哎
哪位大佬有备份吗
回复

使用道具 举报

🔗
 楼主| jijismile 2022-5-30 09:49:48 | 只看该作者
全局:
DLer 发表于 2022-5-29 14:55
这个帖子已经不在了哎
哪位大佬有备份吗

看这个试试 https://leetcode.com/problems/ko ... lved-many-problems.
回复

使用道具 举报

🔗
WZSNFLK 2025-1-26 12:27:15 | 只看该作者
全局:
spiritcat 发表于 2022-5-4 10:41
常用的需要两个模版,二分查找需要数据具有二段性。

假设有x为false,o为true。

如果列表只剩两个元素, 而且想保留左指针指向的元素:
   使用常规的“mid = (left + right) // 2; left = mid” 就会陷入死循环
   如果只剩两个元素, 再把mid指向第靠右的元素(mid = (left + right + 1) // 2)就可以完美解决这个问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表