本文最后更新于:2020年11月23日 下午
实现函数double Power(double base, in exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。
示例1:
输入:2.00000, 10
输出:1024.00000
示例2:
输入:2.10000,3
输出:9.26100
示例3:
输入:2.00000,-2
输出:0.25000
解释:2^-2 = (1/2)^2 = (1/4) = 0.25
说明:
- -100.0 < x < 100.0
- n是32位有符号整数,其数值范围是$[-2^{31},2^{31}-1]$。
class Solution:
def myPow(self, x, n):
解题思路:
求$x^n$最简单的方法是通过循环将$n$个$x$乘起来,依次求$x^1,x^2,\cdots,x^{n-1},x^n$,时间复杂度为$O(n)$。
快速幂法 可将时间复杂度降低至$O(logn)$,以下从分治法和二进制两个角度解析快速幂法。
快速幂解析(分治法角度):
快速幂实际上是分治思想的一种应用。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!