查看: 1777| 回复: 5
跳转到指定楼层
上一主题 下一主题
收起左侧

[二分/排序/搜索] leetcode 154 二分查找边界问题。

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
这一题二分查找,边界问题。为什么所有答案都是拿mid和右边的值比?
为什么不能拿mid和左边的值比?

上一篇:新人爆照求大米,想看面筋
下一篇:求各位大佬 DP 类题目做法
全局:
不能只跟左边比的原因是 不符合当数组没有rotation 的情况, 0,1,2,3,4,5 最小是0,但是你做比较的话,如果中间比左边大 ,rotation 之后的数组,最小值应该在右边一半。

评分

参与人数 1大米 +1 收起 理由
alexan0218 + 1 一语道破我的迷惑!

查看全部评分

回复

使用道具 举报

全局:
可以。看看讨论。我post了一个跟左边比的答案
回复

使用道具 举报

🔗
 楼主| whodatj 2019-7-4 08:45:32 | 只看该作者
全局:
pr1234567 发表于 2019-7-4 08:30
可以。看看讨论。我post了一个跟左边比的答案

我翻了讨论区没有看见,能给一下链接吗?
回复

使用道具 举报

🔗
kuboy 2019-7-4 09:57:09 | 只看该作者
全局:
左右都比了吧?
1. 当中间的值大于最右边的值的时候,那么最小值一定在 mid 和 right 中间, 如 [4, 5, 6, 7, 0, 1, 2]
2. 当中间值小于最左边值的时候,最小值一定在 left 和 mid 中间, 如 [4, 5, 6, 7, 0, 1, 2]
3. 剩下的情况一定是有重复元素或者已经是一个有序数组,比如 [5, 5, 5, 5, 1, 5] 或者 [1, 2, 3, 4, 5] ,此时就right自减 1 ,一个一个比较

补充内容 (2019-7-4 10:30):
还有个细节的地方参考,https://leetcode.com/problems/fi ... e-to-solve-it/48840,虽然这不是你问的,我也写一下,记录一下
回复

使用道具 举报

🔗
 楼主| whodatj 2019-7-6 03:38:06 | 只看该作者
全局:
dyb_td 发表于 2019-7-5 12:21
不能只跟左边比的原因是 不符合当数组没有rotation 的情况, 0,1,2,3,4,5 最小是0,但是你做比较的话,如果 ...

谢谢!!
回复

使用道具 举报

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

本版积分规则

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