Factorial Trailing Zeroes
来源:互联网 发布:天津职业大学赛尔网络 编辑:程序博客网 时间:2024/06/01 21:29
Given an integer n, return the number of trailing zeroes in n!.
单看这句会觉得这道题so easy,但是再看下面的note:Your solution should be in logarithmic time complexity(时间复杂度为O(logN)).
我说怎么用一开始的解法一直提示"Time limit exceeded"呢,刷了这么多道题我才明白面对这个错误该如何下手解决。。。
解题思路:乘积末位为0 的两个数必然含有2和5这两个约数,而只要存在5就必然存在相应个数的2与之匹配,最基础的方法就是从1~n挨个找出含约数5的整数,而且要重点考察像25这种约数中5的个数有一个以上的数。令i = 0,i <= n,即使每循环一次i += 5,时间复杂度依然不能满足O(log5N)。
public class Solution { public int trailingZeroes(int n) { int count = 0; while (n != 0){ count += n / 5; n /= 5; } return count; }}
有多少的5的倍数,就加多少个0;(i / 5)
有多少个25的倍数,就再加多少个0,因为25 = 5 * 5,有两个5;(n/=5; n/5)
有多少个625的倍数,就再加多少个0,因为625 = 5 * 5 * 5,有三个5;(n/=5; n/5)。。。以此类推
感觉这种逻辑乍一看很难明白,但是再仔细想想就能想通了,所以实现了时间复杂度O(log5N)
0 0
- Factorial Trailing Zeroes
- Factorial Trailing Zeroes
- Factorial Trailing Zeroes
- Factorial Trailing Zeroes
- [leetcode]Factorial Trailing Zeroes
- [LeetCode] Factorial Trailing Zeroes
- Leetcode Factorial Trailing Zeroes
- Leetcode: Factorial Trailing Zeroes
- 【Leetcode】Factorial Trailing Zeroes
- Factorial Trailing Zeroes
- leetcode:Factorial Trailing Zeroes
- Java-Factorial Trailing Zeroes
- Factorial Trailing Zeroes (Java)
- Factorial Trailing Zeroes
- Leetcode: Factorial Trailing Zeroes
- Leetcode: Factorial Trailing Zeroes
- Factorial Trailing Zeroes
- Factorial Trailing Zeroes
- Jenkins 让服务一直运行即使Job已经结束
- LeetCode:Search in Rotated Sorted Array
- Gson解析Json 四
- Java NIO原理图文分析及代码实现
- dev-C++调试崩溃问题
- Factorial Trailing Zeroes
- error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- HDU 5157 Harry and magic string (BestCoder Round #25 D) Manacher(或 Palindromic Tree) + 前缀和
- c# 类
- J2EE基础总结(1)——J2EE入门
- android 开发 多屏适配
- Machine Learning Classical Books Intro - 02
- socket的半包,粘包与分包的问题
- wnd32TEXTMETRIC字体结构