【LeetCode】【Math】Sqrt(x)
题目:
实现 sqrt(int x)。
计算并返回x的平方根,其中x是一个非负整数。
由于返回类型是整数,因此如果有小数将会被抹去,仅返回结果的整数部分。
Example 1:
Input: 4 Output: 2
Example 2:
Input: 8 Output: 2 Explanation: The square root of 8 is 2.82842..., and since the decimal part is truncated, 2 is returned.
【解法】
class Solution: def mySqrt(self, x: int) -> int: import math return int(math.sqrt(x))
Runtime: 40 ms, faster than 51.33% of Python3 online submissions for Sqrt(x).
Memory Usage: 13.9 MB, less than 31.93% of Python3 online submissions for Sqrt(x).
【解法】binary search
class Solution: def mySqrt(self, x: int) -> int: l, r = 0, x while l <= r: mid = l + (r-l)//2 if mid * mid <= x < (mid+1)*(mid+1): return mid elif x < mid * mid: r = mid else: l = mid + 1
Runtime: 48 ms, faster than 31.97% of Python3 online submissions for Sqrt(x).
Memory Usage: 13.9 MB, less than 28.87% of Python3 online submissions for Sqrt(x).
【解法】暴力枚举
class Solution: def mySqrt(self, x: int) -> int: for i in range(0,x+1): if i*i == x: return i if i*i < x: i += 1 if i*i > x: return i-1
Runtime: 7368 ms, faster than 5.01% of Python3 online submissions for Sqrt(x).
Memory Usage: 13.9 MB, less than 40.03% of Python3 online submissions for Sqrt(x).

浙公网安备 33010602011771号