五月天青色头像情侣网名,国产亚洲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的評論 (共 條)

分享到微博請遵守國家法律
湘西| 荥经县| 英山县| 陆河县| 会宁县| 绿春县| 内丘县| 根河市| 阿巴嘎旗| 吉林省| 万载县| 湟源县| 汽车| 府谷县| 昌都县| 北流市| 龙州县| 武平县| 朝阳县| 海兴县| 蓝田县| 犍为县| 博爱县| 新巴尔虎右旗| 奉节县| 钟祥市| 安平县| 临沧市| 崇仁县| 平阳县| 靖边县| 朔州市| 武胜县| 阿拉善右旗| 广昌县| 阳朔县| 高碑店市| 安吉县| 天全县| 南部县| 赫章县|