暑期目標:刷100題題目數量:簡單題*2 , 進度 1/100其中:簡單題記0.5題;
中等題記0.8題;
困難題記1.5題;
[231] 2的冪, 判斷乙個數是否為2的冪
我的解法:
使用位運算最快的大佬的解法:把輸入與1求「&」,並加在count中(即,若為1 ,則+1, 若為0,則不變)
把輸入右移一位:>>,繼續重複上一步,直至該數為0
-1特殊處理
若count<2(即對應二進位制數的補碼僅有一位是1), 則是2的冪,
否則不是
直接對n與n-1求與(&),若為0則是2的冪[202] 快樂數,對於乙個正整數,每一次將該數替換為它每個位置上的數字的平方和,然後重複這個過程直到這個數變為 1,也可能是無限迴圈但始終變不到1。如果可以變為 1,那麼這個數就是快樂數。
我的解法:
按照題目要求來求題目數量:中等題*2 , 進度 2.6/100停止條件有兩個:
最終得到1 或 最終得到的數之前出現過
大佬的解法:
大差不差,但是分類討論得更優
公司oj的no.80 一系列字串轉為6位數字,具體方法是求各個字元的ascii碼,6個一輪,下一輪與前一輪對應位置相加,然後把這六個數字各位相加,得到6個個位數即可;
學到的乙個操作,用於求多位數n
的各位數之和:
s = sum(map(int, str(n)))
基本就是按照題目要求的迴圈即可[794] 有效的井字遊戲,題目略複雜,就不詳述了,大概是給定幾條規則,給定乙個list作為棋盤,判斷該期盼是否符合規則。在判斷是否為各位數時用了一次遞迴
最終結果是最快的
我的解法很蠢,基本就是找規則,甚至還用了乙個類似窮舉的操作
大佬的解法巧妙些,對規則總結得很到位,所以寫出來很簡單
還是得多思考啊~
leetcod刷題 移動零
週末了,睡了好久的懶覺了,起來去實驗室寫專案之前再刷一道題提提神就好了。給定乙個陣列 nums,編寫乙個函式將所有 0 移動到陣列的末尾,同時保持非零元素的相對順序。示例 輸入 0,1,0,3,12 輸出 1,3,12,0,0 說明 必須在原陣列上操作,不能拷貝額外的陣列。儘量減少操作次數。這道題也...
LeetCod 27 移除元素
給定乙個陣列 nums 和乙個值 val,你需要原地移除所有數值等於 val 的元素,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。元素的順序可以改變。你不需要考慮陣列中超出新長度後面的元素。示例 1 給定 nums 3,2,2,3 ...
LeetCod 200 島嶼數量
給定乙個由 1 陸地 和 0 水 組成的的二維網格,計算島嶼的數量。乙個島被水包圍,並且它是通過水平方向或垂直方向上相鄰的陸地連線而成的。你可以假設網格的四個邊均被水包圍。示例 1 輸入 11110 11010 11000 00000 輸出 1 示例 2 輸入 11000 11000 00100 0...