您的位置:首页 > 编程语言 > Python开发

leetcode pow(x,n) (python)

2014-04-22 20:01 417 查看
原本感觉很简单,写出来之后时间复杂度太高了,上网查了一下,普遍应用的是二分法:

xn = xn/2 * xn/2 * xn%2
时间复杂度:O(logN)

代码很简单,思想很重要。

class Solution:
# @param x, a float
# @param n, a integer
# @return a float

def power(self,x,n):
if n==0:
return 1
half=n/2;
res_temp=self.power(x,half)
if n%2:
return res_temp*res_temp*x
else:
return res_temp*res_temp

def pow(self, x, n):
if x==0:
return 0
if n<0:
return 1.0/self.power(x,-n)
else:
return self.power(x,n)



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode