五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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的評論 (共 條)

分享到微博請遵守國家法律
额尔古纳市| 从化市| 巨鹿县| 象山县| 泰和县| 万山特区| 婺源县| 伊宁市| 嘉祥县| 济阳县| 安塞县| 日照市| 怀宁县| 桂东县| 平度市| 噶尔县| 什邡市| 寻甸| 盘山县| 汨罗市| 绥芬河市| 邓州市| 本溪市| 慈溪市| 东平县| 安庆市| 衢州市| 青浦区| 卢龙县| 汽车| 唐山市| 怀柔区| 苗栗市| 溆浦县| 承德县| 积石山| 新竹县| 德保县| 山丹县| 太原市| 曲松县|