Using math module is applicable but meaningless. The normal way to get square root is to use formula n + x/n = 2n, so n = sqrt(x). Of course we cannot set n to that value, but we can approach by recursion.
Solution:
# T:O(lgn) S:O(1)
class Solution:
# @param {integer} x
# @return {integer}
def mySqrt(self, x):
if x == 0: return 0
y = x/2.0
z = (y + x/y)/2
while float(abs(z - y)) > 0.1:
y = z
z = (y + x/y)/2
return int(z)
Run Time: 68 ms
No comments:
Post a Comment