LeetCode 50.Pow(x, n) 题解
题目描述
实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn )。
样例
1 | 示例 1: |
1 | 示例 2: |
1 | 示例 3: |
算法1
(快速幂) $O(logn)$
如果每次乘以一个 x 来求 x 的 n 次幂的话,那么需要线性的时间,当 n 特别大时,明显效率过低,因此可以二进制的思想将 n 预处理
思路:
- 借助二进制的思想, n 的二进制表示就表明了 n 可以由 2 的多少次幂组成,那么我们可以预处理 $2^0, 2^1, 2^2 …. $
- 整体的时间复杂度将会缩减至 $logn$
C++ 代码
1 | class Solution { |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.