noaman_wgs

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

1、题目

//实现 int sqrt(int x) 函数。 
//
// 计算并返回 x 的平方根,其中 x 是非负整数。
//
// 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。
//
// 示例 1:
//
// 输入: 4
//输出: 2
//
//
// 示例 2:
//
// 输入: 8
//输出: 2
//说明: 8 的平方根是 2.82842...,
//  由于返回类型是整数,小数部分将被舍去。
//
// Related Topics 数学 二分查找
// 👍 600 👎 0


2、实现
class Solution {
    public int mySqrt(int x) {
        int left = 0;
        int right = x;
        int res = 0;
        while (left <= right) {
            double mid = left + (right - left) / 2;
            if (mid * mid <= x) {
                res = (int) mid;
                left = (int) (mid + 1);
            } else {
                right = (int) (mid - 1);
            }
        }
        return res;
    }


    public int mySqrt2(int x) {
        double res = Math.sqrt(x);
        return (int)Math.floor(res);

    }
}

  













posted on 2021-02-24 17:44  noaman_wgs  阅读(58)  评论(0编辑  收藏  举报