LeetCode-069:Sqrt(x)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_32360995/article/details/87071317

题目:

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.

题意:

求一个数的开根号结果,向下取整

思路:

二分法搜索

Code:

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) l=mid+1;
            else if(x/mid<mid) r=mid-1;
            else return mid;
        }
        return r;
    }
};

猜你喜欢

转载自blog.csdn.net/qq_32360995/article/details/87071317