LeetCode-Easy刷題(15) Sqrt(x)

Implement int sqrt(int x).

Compute and return the square root of x.

x is guaranteed to be a non-negative integer.


Example 1:

Input: 4
Output: 2

Example 2:

Input: 8
Output: 2
Explanation: The square root of 8 is 2.82842..., and since we want to return an integer, the decimal part will be truncated

實現開平方這個方法,返回整數部分.

//這題應該用二分法來查找
    //二分法
    public static int mySqrt(int x) {

        if(x==0 || x ==1){
            return x;
        }

        int left  = 0;
        int right = x;

        while(left<=right){

            int mid = (left + right)/2;

            if(x/mid==mid && x%mid==0){
                return mid;
            }

            if(x/mid<mid){
                right = mid -1;
            }else{
                left = mid + 1;
            }
        }
        return right;
    }


發佈了213 篇原創文章 · 獲贊 54 · 訪問量 43萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章