50. Pow(x, n)
# Medium
It's not like medium problem. The key is to consider two cases:
n >= 0
n < 0
Binary Search
class Solution:
def myPow(self, x: float, n: int) -> float:
# edge case
if abs(n) == 0:
return 1
# regular case
if n&1 == 0:
result = self.myPow(x, n//2)
result = result*result
else:
if n > 0:
result = self.myPow(x, n//2)
result = result*result*x
else:
result = self.myPow(x, n//2+1)
result = result*result/x
return result
Time complexity =
Last updated
Was this helpful?