1. 程式人生 > 其它 >2021121 LeetCode刷題 計算並返回 x 的 算術平方根 (難度:簡單)

2021121 LeetCode刷題 計算並返回 x 的 算術平方根 (難度:簡單)

題目:

計算並返回x的算術平方根。

給你一個非負整數 x ,計算並返回x的 算術平方根 。

由於返回型別是整數,結果只保留 整數部分 ,小數部分將被 捨去 。

注意:不允許使用任何內建指數函式和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。

示例 1:

輸入:x = 4
輸出:2
示例 2:

輸入:x = 8
輸出:2

解釋:8 的算術平方根是 2.82842..., 由於返回型別是整數,小數部分將被捨去。

程式碼:(二分法查詢)

class Solution {
     public int mySqrt(int x) {
        int l = 0, r = x, ans = -1;
        while (l <= r) {
            int mid = l + (r - l) / 2;
            if ((long) mid * mid <= x) {
                ans = mid;
                l = mid + 1;
            } else {
                r = mid - 1;
            }
        }
        return ans;
    }
}

  

執行結果: 通過 顯示詳情

新增備註

執行用時:1 ms, 在所有Java提交中擊敗了99.56%的使用者 記憶體消耗:35.3 MB, 在所有Java提交中擊敗了86.80%的使用者 通過測試用例:1017/101



來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/sqrtx
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。