1. 程式人生 > >69. x 的平方根

69. x 的平方根

一、題意
實現 int sqrt(int x) 函式。

計算並返回 x 的平方根。

x 保證是一個非負整數。

案例 1:

輸入: 4
輸出: 2
案例 2:

輸入: 8
輸出: 2
說明: 8 的平方根是 2.82842…, 由於我們想返回一個整數,小數部分將被捨去。

二、分析和解答
一開始,最笨的做法,從0到n遍歷,程式碼:

public int mySqrt(int x) {
        int res = 0;
        for(int i=1;i<=x;i++){
            if((x / i >= i) && (x / (i+1
)< (i+1))){ res = i; break; } } return res; }

我一開始錯誤的寫法:i * i <= x && (i+1)* (i+1) > x。這樣會導致溢位。應該如上寫成除法!

  public int mySqrt(int x) {
        int low = 1;
        int high = x;

        while(low <= high){
            int
mid = (high + low) / 2; if(x / mid < mid){ high = mid - 1; }else if(x / mid > mid){ low = mid + 1; }else return mid; } return low-1; }

我最後依舊是判斷不準確是 low 還是 low - 1,所以,下次碰到類似的情況,找個例子試一下!

相關推薦

leetcode 69 x平方根 ---python

實現 int sqrt(int x) 函式。 計算並返回 x 的平方根,其中 x 是非負整數。 由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。 示例 1: 輸入: 4 輸出: 2 示例 2: 輸入: 8 輸出

69. x平方根

Problem 實現 int sqrt(int x) 函式。 計算並返回 x 的平方根,其中 x 是非負整數。 由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。 示例 1: 輸入: 4 輸出: 2 示例 2: 輸入: 8 輸出: 2 說明: 8 的平方

leetcode 69 x平方根

實現 int sqrt(int x) 函式。 計算並返回 x 的平方根,其中 x 是非負整數。 由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。 示例 1:   輸入: 4 輸出: 2 示例

leetcode.69 x平方根

實現 int sqrt(int x) 函式。 計算並返回 x 的平方根,其中 x 是非負整數。 由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。 示例 1: 輸入: 4 輸出: 2 示例 2: 輸入:

Leetcode 69.x平方根(Python3)

69.x 的平方根 實現 int sqrt(int x) 函式。 計算並返回 x 的平方根,其中 x 是非負整數。 由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。 示例 1: 輸入: 4 輸出: 2

LeetCode 69. x平方根 Sqrt(x)(C語言)

題目描述: 實現 int sqrt(int x) 函式。 計算並返回 x 的平方根,其中 x 是非負整數。 由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。 示例 1: 輸入: 4 輸出: 2 示例 2: 輸入: 8 輸出: 2 說明

69. x平方根

一、題意 實現 int sqrt(int x) 函式。 計算並返回 x 的平方根。 x 保證是一個非負整數。 案例 1: 輸入: 4 輸出: 2 案例 2: 輸入: 8 輸出: 2 說明: 8 的平方根是 2.82842…, 由於我們想返回一

69. X平方根(JavaScript)

實現 int sqrt(int x) 函式。 計算並返回 x 的平方根,其中 x 是非負整數。 由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。 示例 1: 輸入: 4 輸出: 2 示例 2: 輸入: 8 輸出: 2 說明: 8 的平方根是 2.828

leetCode 69.Sqrt(x) (平方根) 解題思路和方法

Implement int sqrt(int x). Compute and return the square root of x. 思路:因為本題是int型別的資料,所以可以使用二分法查詢。但是面試的時候很少有整數的,所以真正的面試都是double。 int型別

leetcood學習筆記-69-x平方根

def cli 平方根 font view -a src eve targe 題目描述: 第一次提交:(會超時) class Solution: def mySqrt(self, x: int) -> int: if

力扣(LeetCode)69. x平方根

sqrt for ... 輸入 分享圖片 示例 語言 平方根 結果 實現 int sqrt(int x) 函數。 計算並返回 x 的平方根,其中 x 是非負整數。 由於返回類型是整數,結果只保留整數的部分,小數部分將被舍去。 示例 1: 輸入: 4 輸出: 2 示例 2:

LeetCode演算法題69x平方根解析

實現 int sqrt(int x) 函式。 計算並返回 x 的平方根,其中 x 是非負整數。 由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。 示例1: 輸入: 4 輸出: 2 示例2: 輸入: 8 輸出: 2 說明: 8 的平方根是 2.82842...,

LeetCode 69.Sqrt(x) (x平方根)

題目描述: 實現 int sqrt(int x) 函式。 計算並返回 x 的平方根,其中 x 是非負整數。 由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。 示例 1: 輸入: 4 輸出: 2 示例 2: 輸入: 8 輸出: 2 說明: 8 的

Leetcode 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. Sinc

leetcode 69. Sqrt(x) 牛頓法求平方根

Implement int sqrt(int x). Compute and return the square root of x. class Solution { public: int mySqrt(int x) { for (int i = 0; i

LeetCode 69. Sqrt(x) x平方根

解法一: class Solution { public:     int mySqrt(int x) {         int left=1,right=x/2,last_mid;         if(x<2)             return x;    

LeetCode 69. Sqrt(x)(x的算術平方根

題目描述:    Implement int sqrt(int x).    Compute and return the square root of x.    x is guaranteed to

leetcode解題之69.Sqrt(x) & 367. Valid Perfect Square Java版 (求一個數的平方根

69. Sqrt(x) Implement int sqrt(int x). Compute and return the square root of x. 求一個數的平方根,並向下取整。

【leetcode-69x平方根

lse 平方根 結果 大於 class i++ 輸入 其中 由於 (主要是越界問題) 實現 int sqrt(int x) 函數。 計算並返回 x 的平方根,其中 x 是非負整數。 由於返回類型是整數,結果只保留整數的部分,小數部分將被舍去。 示例 1: 輸入:

LeetCode 69 _ Sqrt(x) 求平方根 (Easy)

提交 快速 mem 縮小 題目 implement span nat turned Description: Implement int sqrt(int x). Compute and return the square root of x, where x is g