50-pow-x-n

实现 pow(x, n),即计算 x 的 n 次幂函数。

说明:

  • -100.0 < x < 100.0
  • n 是 32 位有符号整数,其数值范围是 [−231, 231 − 1] 。

示例

输入: [-2,1,-3,4,-1,2,1,-5,4],
输出: 6
解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。

示例 1:

输入: 2.00000, 10
输出: 1024.00000

示例 2:

输入: 2.10000, 3
输出: 9.26100

示例 3:

输入: 2.00000, -2
输出: 0.25000
解释: 2-2 = 1/22 = 1/4 = 0.25

解法

核心思想:转换成二进制计算法

class Solution:
def myPow(self, x: float, n: int) -> float:
flag = True if n > 0 else False
res, n = 1, abs(n)
while n:
# 每次取得最后一位
if n & 0x01:
res *= x
x *= x
n >>= 1
return res if flag else 1/res

相关信息

Discussion | Solution

-------------本文结束感谢您的阅读-------------