题解 | #求最大连续bit数#

求最大连续bit数

https://www.nowcoder.com/practice/4b1658fd8ffb4217bc3b7e85a38cfaf2

题目估计是想考二分法,以下是二分法解答。

def fun():
    a = bin(int(input().strip()))[2:]
    res_range = [0, len(a)]  # 结果应在的范围
    while True:
        # 二分法的范围已经够小了就暴力遍历
        if res_range[1] - res_range[0] < 5:
            for i in range(res_range[1], res_range[0]-1, -1):
                if i*'1' in a:
                    print(i)
                    return
        # 二分过程
        mid = sum(res_range) // 2
        if mid * '1' in a:
            res_range = [mid, res_range[1]]
        else:
            res_range = [res_range[0], mid]

fun()

全部评论

相关推荐

03-23 15:00
已编辑
厦门大学 Java
xiaowl:你这个简历的问题是对于技术点、项目的描述,都是描述action的,对于面试官而言,仅能知道你干了什么,无法判断你为什么这么干,干的好不好。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务