69. Sqrt(x)

Implement int sqrt(int x).

Compute and return the square root of x, where x is guaranteed to be a non-negative integer.

Since the return type is an integer, the decimal digits are truncated and only the integer part of the result is returned.

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.
Language: java
class Solution {
    public int mySqrt(int x) {
        if (x <= 1) {
            return x;
        }
        int l = 0, r = x;
        while (l <= r) {
            int mid = l + (r - l) / 2;
            if (x / mid < mid) {
                r = mid - 1;
            } else {
                l = mid + 1;
            }
        }
        return r;
    }
}
Analysis:
  1. Binary search method
  2. Pay attention to the problem of integer overflow;
Submission Detail
Accepted Solutions Runtime Distribution
Accepted Solutions Memory Distribution
Language: Python
class Solution:
    def mySqrt(self, x: int) -> int:
        if x <= 1:
            return x
        l = 1
        r = x
        while l <= r:
            mid = l + (r - l) // 2
            if x // mid < mid:
                r = mid - 1
            else:
                l = mid + 1
        return r

Submission Detail

Accepted Solutions Runtime Distribution

Accepted Solutions Memory Distribution

Summary:

  1. Java runtime is shorter than Python;
  2. Java uses more memory than Python;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容