0
点赞
收藏
分享

微信扫一扫

2022/04/121 leetcode 每日一题 868. 二进制间距

春意暖洋洋 2022-04-24 阅读 61
leetcode

        说点题外话,最近状态真的好差好差,希望自己能慢慢调节过来,也祝学习的各位努力有所回报。

        水逆退散!!!!!!!!

1.题目

2.求解

        简单题,通过lowbit去求得最低位的值,math.log获得位置,每次和前一位的位置相减即可。

3.代码

class Solution:
    
    def binaryGap(self, n: int) -> int:
        import math
        def lowbit(x):
            return x & -x
        num = lowbit(n)
        n -= num
        ans = 0
        idx = math.log(num, 2)
        while n > 0:
            num = lowbit(n)
            n -= num
            num = math.log(num, 2)
            c = num - idx
            idx = num
            ans = max(int(c), ans)

        return ans
举报

相关推荐

0 条评论