国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

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

分享到微博請遵守國家法律
平泉县| 通江县| 施甸县| 海阳市| 黑龙江省| 肇州县| 呼玛县| 清流县| 六安市| 阳曲县| 蒙自县| 开江县| 邳州市| 元江| 武鸣县| 恩施市| 嘉义市| 双鸭山市| 开平市| 镇江市| 桃园县| 尚志市| 灌阳县| 土默特左旗| 嘉荫县| 盈江县| 东山县| 新和县| 阜阳市| 沅陵县| 丘北县| 土默特右旗| 临朐县| 鹰潭市| 阿合奇县| 滨州市| 云南省| 二连浩特市| 和田市| 奈曼旗| 山西省|