本文最后更新于:2020年11月23日 下午

实现函数double Power(double base, in exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。

示例1:

输入:2.0000010
输出:1024.00000

示例2:

输入:2.100003
输出: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)$,以下从分治法和二进制两个角度解析快速幂法。

快速幂解析(分治法角度):

快速幂实际上是分治思想的一种应用。