📣 独立日限时特惠: VIP通行证立减$68
查看: 4566| 回复: 12
跳转到指定楼层
上一主题 下一主题
收起左侧

[Leetcode] 面试的时候可以直接使用bisect_left 和 bisect_right,还是要自己写binary search?

全局:

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

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

x
RT, 面试官可以让使用python的bisect_left 和 bisect_right?

如果自己写,有时候状态不好会有很多mistake?

FANG 公司要求面试自己写?

评分

参与人数 2大米 +2 收起 理由
木头橡皮 + 1 赞一个
14417335 + 1

查看全部评分


上一篇:求问131. Palindrome Partitioning的时间复杂度
下一篇:253这题,为啥按照结束时间排序先
推荐
Pizi-G 2021-1-17 13:02:47 | 只看该作者
全局:
这肯定看面试官啊, 看 TA 想考察啥, 题目中 binary search 占什么角色, 面试官的性格, 你在面试中的表现... 肯定没有标准答案 "可以用" / "不可以用".

比如你如果之前几个问题回答的非常好, 我大致能看出来你的水平肯定会这种基本算法, 那我就没兴趣看你写这个, 主要回答我想要的题目的大方向.
如果我觉得我还不是很确定你的基础水平到底怎么样, 我就会想看看你写 binary search, 是不是顺畅 + bug free.
回复

使用道具 举报

推荐
qzane 2021-1-17 06:29:34 | 只看该作者
全局:
本帖最后由 qzane 于 2021-1-17 06:34 编辑

建议直接写,二分代码其实很短的,而左开右闭还是左闭右开要具体情况具体分析(取决于你能写出的check函数是>=还是<=),用库容易弄乱,我的写法如下,供参考:
  1. left = X # included
  2. right = Y # not included
  3. while(left+1<right):
  4.     mid = (left+right) // 2
  5.     if check(mid):
  6.         left = mid
  7.     else:
  8.         right = mid
  9. return left
复制代码


回复

使用道具 举报

全局:
看这个题目考察的重点是啥,重点是二分的话,那基本上是需要自己实现。如果二分只是其中一个子过程(比如离散化之类的) ,那一般就可以调用系统的函数。
回复

使用道具 举报

🔗
aunom 2021-1-17 01:34:04 | 只看该作者
全局:
自己写其实非常简单,因为本身 bisect 的实现就很短。。。

另外你问的问题不可能有准确答案的。有的面试官看中实现,希望你自己能 bug free 的写出来。有的面试官看中想法,你知道要用二分法,还会用library,就可以了。这两种我都遇到过
回复

使用道具 举报

🔗
 楼主| hengde12 2021-1-17 09:17:13 | 只看该作者
全局:
不知道小帅 发表于 2021-1-17 00:31
看这个题目考察的重点是啥,重点是二分的话,那基本上是需要自己实现。如果二分只是其中一个子过程(比如离 ...

如果题目是longest increasing subsequence https://leetcode.com/problems/longest-increasing-subsequence/ , 用二分法实现O(n) time, 可以直接使用bisect_left?
回复

使用道具 举报

全局:
hengde12 发表于 2021-01-16 17:17:13
如果题目是longest increasing subsequence https://leetcode.com/problems/longest-increasing-subsequence/ ,
二分法到不了O(n)啊,最多nlogn。这个面试的话可以跟面试官沟通。有的可以,有的可能不行。我倾向于可以用,如果思路讲得很清楚的啊。
回复

使用道具 举报

全局:
插个眼紫薯紫薯
回复

使用道具 举报

🔗
qs77 2021-1-17 10:52:06 | 只看该作者
全局:
个人感觉最好是可以自己手撸bisect,面试确实没遇见过,但是去年(2020)两次oa遇见二分搜的变形,直接用bisect非常费劲或者实现不了,自己写二分搜只需要在里面小改一下某些语句就好。而且二分搜有定式啊,基本上就那么几种情况,【第一个,最后一个,随便一个】 x 【小于,等于,大于,或者其它奇特的判断。。。】
回复

使用道具 举报

🔗
Sezedai 2021-1-17 11:14:57 | 只看该作者
全局:
最好不用。

你可以写个binary search函数名,但是不实现,先写其他部分的代码,调用binary search函数。

和面试官确认是否实现binary search,你再写或者不写。

千万别假设人家不需要你写,直接不写,人家如果想黑你,这是个很好的黑点:你不会binary search,或者交流不畅。

回复

使用道具 举报

🔗
Owenli20 2021-1-17 11:38:44 | 只看该作者
全局:
问面试官啊,问地里没用他说写就写
回复

使用道具 举报

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

本版积分规则

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