0
点赞
收藏
分享

微信扫一扫

leetcode算法69.x 的平方根

暮晨夜雪 2022-02-16 阅读 99

文章目录

一、leetcode算法

1、x 的平方根

1.1、题目

由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。

注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。

示例 1:

输入:x = 4
输出:2
示例 2:

输入:x = 8
输出:2
解释:8 的算术平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。

1.2、思路

1.3、答案

在这里插入图片描述

class Solution {
    public int mySqrt(int x) {
        //定义左右位置,和最终结果变量
        int left = 0, right = x, ans = -1;
        //终止条件为左边位置小于等于右边位置
        while(left <= right){
            //二分法计算中间位置计算方法
            int mid = left + (right - left) / 2;
            //计算mid的平方和目标值x的比较
            if((long) mid * mid <= x){
                //如果mid平方小于等于x,则证明符合结果,将mid直接赋值给ans
                ans = mid;
                left = mid + 1;
            }else {
                right = mid - 1;
            }
        }
        return ans;
    }
}

复杂度分析

时间复杂度:O(log x),即为二分查找需要的次数。

空间复杂度:O(1)。

举报

相关推荐

0 条评论