📝题目
1 | 给定一个整数 n,返回 n! 结果尾数中零的数量。 |
说明: 算法的时间复杂度应为 O(log n) 。
📝思路
观察1!, 2!, 3!, 4!, 5!...,可以看出从5!开始尾数有一个零,10!开始尾数有两个零,15!开始尾数有三个零…可以猜测我们的算法将从因子5下手,最开始的想法是return n / 5(不过当然不可能是这种干脆利落的O(1)啦),当从25!开始时,因为25可以拆分成5*5,因此此时是return n / 5 + 1…可以进一步猜测结果与5的幂次有关。更详细的题解戳这里。
📝题解
1 | int trailingZeroes(int n) { |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.