LeetCode 150 の古典的な面接の質問 -- 算術平方根を求める (単純)

1. トピック

負でない整数を指定するとx、算術平方根を計算して x 返します

戻り値の型は整数であるため、結果の整数部分のみが保持され、小数部分は破棄されます。

注:組み込みの指数関数や演算子、または などはpow(x, 0.5)使用できませんx ** 0.5

2. 例

例 1:

入力: x=4

出力: 2

 例 2:

入力: x = 8

出力: 2説明: 8 の算術平方根は 2.82842... です。戻り値の型が整数であるため、小数部分は四捨五入されます。


 3. アイデア

二分法:

標準的な面接の質問では、前と次の質問を設定して中央値を継続的に検索して正しい値を見つけるという、二項対立の使用法を検討します。

4. コード

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


Guess you like

Origin blog.csdn.net/dogxixi/article/details/132365276