日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

好吧,又是两分钟看完一道投机取巧的算法题

發(fā)布時(shí)間:2023/12/18 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 好吧,又是两分钟看完一道投机取巧的算法题 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目來(lái)源于 LeetCode 上第 172 號(hào)問(wèn)題:階乘后的零。題目難度為 Easy,目前通過(guò)率為 38.0% 。

題目描述

給定一個(gè)整數(shù) n,返回 n! 結(jié)果尾數(shù)中零的數(shù)量。

示例 1:

輸入: 3 輸出: 0 解釋: 3! = 6, 尾數(shù)中沒(méi)有零。

示例 2:

輸入: 5 輸出: 1 解釋: 5! = 120, 尾數(shù)中有 1 個(gè)零.

說(shuō)明: 你算法的時(shí)間復(fù)雜度應(yīng)為 O(log n) 。

題目解析

題目很好理解,數(shù)階乘后的數(shù)字末尾有多少個(gè)零。

最簡(jiǎn)單粗暴的方法就是先乘完再說(shuō),然后一個(gè)一個(gè)數(shù)。

事實(shí)上,你在使用暴力破解法的過(guò)程中就能發(fā)現(xiàn)規(guī)律: 這 9 個(gè)數(shù)字中只有 2(它的倍數(shù)) 與 5 (它的倍數(shù))相乘才有 0 出現(xiàn)

所以,現(xiàn)在問(wèn)題就變成了這個(gè)階乘數(shù)中能配 多少對(duì) 2 與 5

舉個(gè)復(fù)雜點(diǎn)的例子:

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

在 10!這個(gè)階乘數(shù)中可以匹配兩對(duì) 2 * 5 ,所以10!末尾有 2 個(gè) 0。

可以發(fā)現(xiàn),一個(gè)數(shù)字進(jìn)行拆分后 2 的個(gè)數(shù)肯定是大于 5 的個(gè)數(shù)的,所以能匹配多少對(duì)取決于 5 的個(gè)數(shù)。(好比現(xiàn)在男女比例懸殊,最多能有多少對(duì)異性情侶取決于女生的多少)。

那么問(wèn)題又變成了 統(tǒng)計(jì)階乘數(shù)里有多少個(gè) 5 這個(gè)因子

需要注意的是,像 25,125 這樣的不只含有一個(gè) 5 的數(shù)字的情況需要考慮進(jìn)去。

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

但是比如 n=25,依舊計(jì)算 n/5 ,可以得到 5 個(gè)5,分別來(lái)自其中的5, 10, 15, 20, 25,但是在 25 中其實(shí)是包含 2個(gè) 5 的,這一點(diǎn)需要注意。

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

代碼實(shí)現(xiàn)

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

?? 看完三件事:

如果你覺(jué)得這篇內(nèi)容對(duì)你挺有啟發(fā),我想邀請(qǐng)你幫我三個(gè)忙:

  • 點(diǎn)贊,讓更多的人也能看到這篇內(nèi)容(收藏不點(diǎn)贊,都是耍流氓 -_-)
  • 關(guān)注我和專欄,讓我們成為長(zhǎng)期關(guān)系
  • 關(guān)注公眾號(hào)「五分鐘學(xué)算法」,第一時(shí)間閱讀最新的算法文章,公眾號(hào)后臺(tái)回復(fù) 1024 送你 50 本 算法編程書籍。

轉(zhuǎn)載于:https://www.cnblogs.com/fivestudy/p/11396770.html

總結(jié)

以上是生活随笔為你收集整理的好吧,又是两分钟看完一道投机取巧的算法题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。