0710,0711 leetcode刷題小結

暑期目標:刷100題
其中:
簡單題記0.5題;
中等題記0.8題;
困難題記1.5題;


07.10

題目數量:簡單題*2 , 進度 1/100

[231] 2的冪, 判斷一個數是否爲2的冪

我的解法:

使用位運算
把輸入與1求“&”,並加在count中(即,若爲1 ,則+1, 若爲0,則不變)
把輸入右移一位:>>,繼續重複上一步,直至該數爲0
-1特殊處理
若count<2(即對應二進制數的補碼僅有一位是1), 則是2的冪,
否則不是

最快的大佬的解法:

直接對n與n-1求與(&),若爲0則是2的冪

[202] 快樂數,對於一個正整數,每一次將該數替換爲它每個位置上的數字的平方和,然後重複這個過程直到這個數變爲 1,也可能是無限循環但始終變不到1。如果可以變爲 1,那麼這個數就是快樂數。

我的解法:

按照題目要求來求
停止條件有兩個:
最終得到1 或 最終得到的數之前出現過
大佬的解法:
大差不差,但是分類討論得更優

07.11

題目數量:中等題*2 , 進度 2.6/100

公司OJ的No.80 一系列字符串轉爲6位數字,具體方法是求各個字符的ASCII碼,6個一輪,下一輪與前一輪對應位置相加,然後把這六個數字各位相加,得到6個個位數即可;

學到的一個操作,用於求多位數n的各位數之和:

s = sum(map(int, str(n)))

基本就是按照題目要求的循環即可
在判斷是否爲各位數時用了一次遞歸
最終結果是最快的

[794] 有效的井字遊戲,題目略複雜,就不詳述了,大概是給定幾條規則,給定一個list作爲棋盤,判斷該期盼是否符合規則。

我的解法很蠢,基本就是找規則,甚至還用了一個類似窮舉的操作

大佬的解法巧妙些,對規則總結得很到位,所以寫出來很簡單

還是得多思考啊~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章