Leetcode--Math

204. Count Primes

時間 O(NloglogN) 空間 O(N)
如果一個數(shù)是另一個數(shù)的倍數(shù),那這個數(shù)肯定不是素數(shù)。利用這個性質(zhì),我們可以建立一個素數(shù)數(shù)組,從2開始將素數(shù)的倍數(shù)都標(biāo)注為不是素數(shù)。第一輪將4、6、8等表為非素數(shù),然后遍歷到3,發(fā)現(xiàn)3沒有被標(biāo)記為非素數(shù),則將6、9、12等標(biāo)記為非素數(shù),一直到N為止,再數(shù)一遍素數(shù)數(shù)組中有多少素數(shù)。

由于1和0都不是質(zhì)數(shù),所以初始化完數(shù)組后,要res[0] = False, res[1] = False
需要注意數(shù)組的越界問題。雙層循環(huán),外層循環(huán)從2到int((n-1)**0.5)+1, 內(nèi)層循環(huán)也是從2開始,到(n-1)/j + 1,n都要-1才行,不然就會越界,可以用4做例子代入就明白了
數(shù)組里存放的是true和false,最后用sum(res)統(tǒng)計數(shù)組中有多少個true就是證明有多少個質(zhì)數(shù)

202. Happy Number

結(jié)果要么最終為1,要么最終陷入循環(huán)。所以用res = set()來存放結(jié)果,因為set()中不包含重復(fù)元素,每次得出結(jié)果后可以堅持結(jié)果是否存在set中,若存在,則返回false。
如何對數(shù)字位進行平方和再相加?將數(shù)字轉(zhuǎn)換為str后就可以進行for循環(huán)。
for i in str(n): sum += int(i)**2
每次得到一個新的n, 若他既不等于1,又不存在set中,就將他添加進去res.add(n)

60. Permutation Sequence

給出數(shù)字n,一共存在n!個全排列。具有同樣起始數(shù)字的排列就有(n-1)!個,因為n中每個數(shù)字都會作為起始數(shù)字。
先將n存進數(shù)組中
while n>=1: group = k / factorial(n-1)
......k = k%factorial(n-1)
(如果K大于0:我們想要找的第k個排列在有序的全排列中屬于第group+1組。因為數(shù)組從0開始計數(shù),所以直接以group為下標(biāo)去nums里找相應(yīng)的起始數(shù)字就可以。
如果K小于0: 當(dāng)前數(shù)字是第group個排列的最后一個數(shù)字,it's the last element of (group)th group, 此時group要減1)
.....if k >0: res.append(str(nums[group])) nums.remove(nums[group]) else: res.append(str(nums[group-1])) nums.remove(nums[group]) n -= 1
return ''.join(res)
remove 是為了防止之后又訪問到這個元素

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 【程序1】 題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔...
    葉總韓閱讀 5,227評論 0 41
  • Java經(jīng)典問題算法大全 /*【程序1】 題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子...
    趙宇_阿特奇閱讀 2,077評論 0 2
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile麗語閱讀 4,099評論 0 6
  • 這世上并不需要那么多喜歡 你喜歡一件衣服 因為沒錢 你只能放棄 你喜歡爆款的口紅 因為沒錢 你只能放棄 你喜歡他 ...
    陳四木呀閱讀 391評論 0 2
  • 我這里談的理想主義者,主要談當(dāng)今中國的理想主義者。 我理解的理想主義者是指堅守做人的良知、對于社會中存...
    李清振閱讀 8,700評論 1 2

友情鏈接更多精彩內(nèi)容