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;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容