leetcode系列题七----快速幂

leetcode系列题七----快速幂

50 Pow(x, n)
372 超级次方

由于暴力是O(n)的复杂度,通过快速幂的方法可以把复杂的降为O(logn)

快速幂实际上是分治思想的一种应用。
偶数: x n = x 2 ( n / / 2 ) x_n =x^{2(n//2)} xn=x2(n//2)
奇数: x n = x x 2 ( n / / 2 ) x_n = x x^{2(n//2)} xn=xx2(n//2)

def pow(x,n):
	if x ==0: return 0
	if n<0: x,n = 1/x, -n
	res = 1
	while n!=0:
		if n&1: res *= x
		x *=x
		n = n>>1
	return res

你可能感兴趣的:(刷题,leetcode,算法,职场和发展)