Implement pow(x, n).
class Solution(object):
def myPow(self, x, n):
if n == 0:
return 1
minus = 0
if n < 0:
minus = 1
n = -n
p = 1
res = x
l = {}
if x == 1:
return 1
if n == 2:
res = x * x
if minus == 1:
res = 1/res
return res
while (p << 1) < n:
l[p] = res
res *= res
p = p << 1
l = sorted(l.iteritems(),key = lambda d:d[0], reverse = True)
#l = dict(l)
#print p,res,l
while p < n:
for i in l:
if i[0] > n- p:
del l[0]
continue
#print i,l,'\n'
res *= i[1]
p += i[0]
break
if minus == 1:
res = 1/res
return res
#return x**n
3万+



被折叠的 条评论
为什么被折叠?



