中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

一行代碼能做啥?題目難度為 Easy,目前通過率為 45.6%?你試試

發布時間:2020-08-10 08:34:40 來源:ITPUB博客 閱讀:160 作者:千鋒Python唐小強 欄目:編程語言

有很多伙伴跟我說,每次看完算法的文章,都覺得自己宛如一個智障,有木有同感的伙伴!(只要思想不滑坡,辦法總困難多)

今天就不寫太復雜的算法知識了,分享幾道 LeetCode 上一行代碼就能 AC 的算法題。可以瞅瞅你會不,哈哈哈!!!

一行代碼能做啥?題目難度為 Easy,目前通過率為 45.6%?你試試

一,2 的冪

題目難度為 Easy,目前通過率為 45.6% 。

題目描述

給定一個整數,編寫一個函數來判斷它是否是 2 的冪次方。

題目解析

如果一個數是 2 的次方數的話,那么它的二進數必然是最高位為1,其它都為 0 ,那么如果此時我們減 1 的話,則最高位會降一位,其余為 0 的位現在都為變為 1,那么我們把兩數相與,就會得到 0。

一行代碼實現

class Solution {
public:
 bool isPowerOfTwo(int n) {
 return (n > 0) && (!(n & (n - 1)));
 } 
};

二,3 的冪

題目難度為 Easy,目前通過率為 43.5% 。

題目描述

給定一個整數,寫一個函數來判斷它是否是 3 的冪次方。

題目解析

正常的思路是不停地去除以 3,看最后的迭代商是否為 1。這種思路的代碼使用到了循環,逼格不夠高。

這里取巧的方法  用到了數論的知識:3 的冪次的質因子只有 3

題目要求輸入的是 int 類型,正數范圍是 0 - 2 31 ,在此范圍中允許的最大的 3 的次方數為 3 19 = 1162261467 ,那么只要看這個數能否被 n 整除即可。

一行代碼實現

class Solution {
 public boolean isPowerOfThree(int n) {
 return n > 0 && 1162261467 % n == 0;
 }
}

三,階乘后的零

階乘后的零。題目難度為 Easy,目前通過率為 38.0% 。

題目描述

給定一個整數  n ,返回  n ! 結果尾數中零的數量。

題目解析

題目很好理解,數階乘后的數字末尾有多少個零。

最簡單粗暴的方法就是先乘完再說,然后一個一個數。

事實上,你在使用暴力破解法的過程中就能發現規律:  這 9 個數字中只有 2(它的倍數) 與 5 (它的倍數)相乘才有 0 出現

所以,現在問題就變成了這個階乘數中能配  多少對 2 與 5  。

舉個復雜點的例子:

10! = 【 2 *( 2 * 2 )* 5 *( 2 * 3 )*( 2 * 2 * 2 )*( 2 * 5)】

在 10!這個階乘數中可以匹配兩對 2 * 5 ,所以10!末尾有 2 個 0。

可以發現,一個數字進行拆分后 2 的個數肯定是大于 5 的個數的,所以能匹配多少對取決于 5 的個數。

那么問題又變成了  統計階乘數里有多少個 5 這個因子

需要注意的是,像 25,125 這樣的不只含有一個 5 的數字的情況需要考慮進去。

比如 n = 15。那么在 15! 中 有 3 個 5 (來自其中的5, 10, 15), 所以計算n/5 就可以 。

但是比如 n = 25,依舊計算 n/5 ,可以得到 5 個5,分別來自其中的5, 10, 15, 20, 25,但是在 25 中其實是包含 2個 5 的,這一點需要注意。

所以除了計算 n/5 , 還要計算 n/5/5 , n/5/5/5 , n/5/5/5/5 , ..., n/5/5/5,,,/5直到商為0,然后求和即可。

一行代碼實現

public class Solution {
 public int trailingZeroes(int n) {
 return n == 0 ? 0 : n / 5 + trailingZeroes(n / 5);
 }
}

看完后是不是覺得也很簡單,很多時候其實人都是有惰性的,不愿意嘗試,你只有把它當個事情認真去想,去解,其實一點都不難!哈哈哈,是不是所謂的:只要思想不滑坡,辦法總比困難多!加油!我的你們!


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

玉龙| 绍兴县| 锦州市| 永胜县| 肃北| 保亭| 海原县| 河间市| 手机| 江油市| 静安区| 五寨县| 油尖旺区| 奇台县| 梓潼县| 甘孜| 铜山县| 屯昌县| 蓝山县| 阳原县| 怀远县| 安岳县| 富民县| 赣榆县| 荥经县| 昂仁县| 合阳县| 阜新市| 广宗县| 绥滨县| 乌拉特中旗| 宜宾县| 四会市| 陆丰市| 新绛县| 凌海市| 北川| 东安县| 高邮市| 大理市| 漯河市|