Solve 69. Sqrt(x)

This commit is contained in:
ktkovachev 2024-04-08 16:56:16 +01:00 committed by GitHub
parent 72cc7fb185
commit 6f468c4c98
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

12
python/69_sqrtx.py Normal file
View File

@ -0,0 +1,12 @@
class Solution:
def mySqrt(self, x: int) -> int:
# Use Newton-Raphson iteration
# y**2 - x = 0 = f(y)
# f'(y) = 2y
# y = y - (y**2 - x)/(2y)
y = 1
close_enough = False
while not close_enough:
y -= (y*y-x)/(2*y)
close_enough = y*y - x <= 0.1 and (y+1)*(y+1) > x
return floor(y)