question 1:find happy number
答案1: 30%
循環(huán)將數(shù)的各位平方和相加,假如這個(gè)和為1就為真贞瞒,否則繼續(xù)循環(huán)偶房,但是如果這個(gè)和出現(xiàn)過(guò),將會(huì)陷入死循環(huán)军浆,這時(shí)候返回False
這個(gè)答案比較慢棕洋,因?yàn)樾枰獙⒄麛?shù)轉(zhuǎn)換成字符串,然后再將字符串轉(zhuǎn)換成整數(shù)
答案2:90%
question 2:Longest Harmonious Subsequence
給定一個(gè)序列乒融,在其子集中找到最大最小值差為1掰盘,且長(zhǎng)度最大的子集長(zhǎng)度
答案:
先對(duì)序列進(jìn)行統(tǒng)計(jì)摄悯,假設(shè)元素X的個(gè)數(shù)為 COUNT(X)。那么根據(jù)定義愧捕,最大長(zhǎng)度一定是由COUNT(X)+COUNT(X+1)組成的
問(wèn)題:這樣的方法并不保證一定得到的是子集的最大長(zhǎng)度奢驯,因?yàn)閷?duì)元素統(tǒng)計(jì)的時(shí)候是無(wú)序的。所以這個(gè)答案雖然能AC次绘,但不太好
question 3:判斷是否為2的冪
一個(gè)數(shù)是2的冪的話瘪阁,其二進(jìn)制必定只有一個(gè)1.利用這個(gè)特點(diǎn),最簡(jiǎn)單直接的做法是將整數(shù)轉(zhuǎn)成二進(jìn)制字符串邮偎,數(shù)1
答案(1)50%:
答案(2)90%:
因?yàn)榧偃邕@個(gè)數(shù)為2的冪管跺,那么 n&(n-1)=0應(yīng)該成立