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

[学Python/Perl] python first bad version

全局:

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

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

x
请问地里:谁能解释一下这个Python code里bisect的用法,或哪位有更好的解法。
class Solution(object):
    def firstBadVersion(self, n):
        """
        :type n: int
        :rtype: int
        """

        class Wrap:
            def __getitem__(self, i):
                return isBadVersion(i)
        return bisect.bisect(Wrap(), False, 0, n)

先谢过,我加大米给大家

上一篇:请教yelp 一道OA的题目
下一篇:请教关于小土刀的亚麻oa题库中的valid parentheses
推荐
stellari 2017-1-31 12:49:08 | 只看该作者
全局:
这很简单。bisect那句话的意思是:如果把badVersion和非badVersion的历史序列想象成一个数组的话(本来不是数组,但是可以用Wrap类来当作它是),那么在这个数组中从0到n,寻找第一个非False的位置。

这方法已经很难再简洁了,不过面试的话我建议你还是自己implement二分搜索为好。
回复

使用道具 举报

🔗
zhy0216 2017-1-31 05:34:49 | 只看该作者
全局:
这代码真的厉害了....

bisect 的实现: https://hg.python.org/cpython/file/2.7/Lib/bisect.py
回复

使用道具 举报

🔗
 楼主| david.fang 2017-1-31 14:00:49 | 只看该作者
全局:
stellari 发表于 2017-1-31 12:49
这很简单。bisect那句话的意思是:如果把badVersion和非badVersion的历史序列想象成一个数组的话(本来不是 ...

佩服佩服 谢谢谢谢
回复

使用道具 举报

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

本版积分规则

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