最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Leetcode Day18 1

2022-04-24 16:43 作者:我喜歡喝一點點  | 我要投稿

868. 二進制間距

給定一個正整數(shù) n,找到并返回 n 的二進制表示中兩個 相鄰 1 之間的 最長距離 。如果不存在兩個相鄰的 1,返回 0 。


如果只有 0 將兩個 1 分隔開(可能不存在 0 ),則認為這兩個 1 彼此 相鄰 。兩個 1 之間的距離是它們的二進制表示中位置的絕對差。例如,"1001" 中的兩個 1 的距離為 3 。


我的第一反應(yīng)是lowbit。。就這么寫了,感覺繞了一大圈

class?Solution:

????def?binaryGap(self,?n:?int)?->?int:

????????def?lowbit(n):

????????????return?n&(-n)

????????def?getN(a):

????????????tmp=0

????????????while?a!=1:

????????????????a=a//2

????????????????tmp+=1

????????????return?tmp

????????res=[]

????????while?n:

????????????lowb=lowbit(n)

????????????n-=lowb

????????????tmp=getN(lowb)

????????????res.append(tmp)

????????max=0

????????for?i?in?range(len(res)-1):

????????????if?abs(res[i]-res[i+1])>=max:

????????????????max=abs(res[i]-res[i+1])

????????return?max

看看題解:

n&1獲取最低位(和00001&可以獲得最低位)

如果為0則右移,如果為1,Last更新為當(dāng)前的位數(shù),并更新ans


Leetcode Day18 1的評論 (共 條)

分享到微博請遵守國家法律
洛扎县| 石门县| 枝江市| 河西区| 宁南县| 旅游| 武平县| 民乐县| 湘潭县| 澳门| 离岛区| 且末县| 惠水县| 监利县| 黄大仙区| 远安县| 阿城市| 衡阳县| 仁怀市| 淳安县| 报价| 蕲春县| 陆丰市| 鞍山市| 保德县| 富阳市| 蒙自县| 哈密市| 长乐市| 三明市| 龙山县| 德兴市| 马龙县| 喀喇| 安顺市| 宜兰市| 娱乐| 开封县| 惠水县| 普兰县| 邻水|