[leetcode] Sqrt(x)

来源:互联网 发布:spss数据分析案例 编辑:程序博客网 时间:2024/06/10 02:20

From : https://leetcode.com/problems/sqrtx/

Implement int sqrt(int x).

Compute and return the square root of x.

class Solution {public:    int mySqrt(int x) {        if(x <= 0) return 0;        if(x <= 3) return 1;        long long start = 1, end = x/2;        while(start <= end) {            long long mid = (start + end) >> 1;            if(mid*mid <= x && (mid+1)*(mid+1) > x) {                return mid;            }            if(mid*mid < x) start = mid+1;            else end = mid-1;        }        return 0;    }};

public class Solution {    public int mySqrt(int x) {if (x <= 1) {return x == 1 ? 1 : 0;}long i = 1, j = x >> 1;while (i <= j) {long m = (i + j) >> 1;long mm = m * m;if (mm <= x && mm + m + m + 1 > x) {return (int)m;} else if (mm > x) {j = m - 1;} else {i = m + 1;}}return (int)i;    }}


0 0
原创粉丝点击