update 69
This commit is contained in:
		
							
								
								
									
										22
									
								
								leetcode/69.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								leetcode/69.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | |||||||
|  | # Sqrt(x) | ||||||
|  | # Do not use build in operator | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class Solution: | ||||||
|  |     def mySqrt(self, c: int) -> int: | ||||||
|  |         # Use Newton's method, return the smaller root | ||||||
|  |         # fx = x ** 2 - c | ||||||
|  |         # Xn-1 = 0.5 * (Xn + c / Xn) | ||||||
|  |         x = c / 2 | ||||||
|  |         while True: | ||||||
|  |             next_x = (x + c / x) / 2 | ||||||
|  |             if x - next_x > -1 and x - next_x <= 0: | ||||||
|  |                 break | ||||||
|  |             x = next_x | ||||||
|  |  | ||||||
|  |         return int(x) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | if __name__ == "__main__": | ||||||
|  |     print(Solution().mySqrt(13)) | ||||||
|  |     print(Solution().mySqrt(16)) | ||||||
		Reference in New Issue
	
	Block a user