LeetCode 训练场:69. x 的平方根

简介: LeetCode 训练场:69. x 的平方根

1. 题目

69. x 的平方根


2. 描述

实现 int sqrt(int x) 函数。


计算并返回 x 的平方根,其中 x 是非负整数。


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


示例 1:


输入: 4


输出: 2


示例 2:


输入: 8


输出: 2


说明: 8 的平方根是 2.82842…,


由于返回类型是整数,小数部分将被舍去。


3. 实现方法

3.1 方法 1

3.1.1 思路

二分查找

由于 x 的平方根的整数部分 res 是满足 res * res <= x 的最大值,因此对 res 进行二分查找;

确定上下界 low、high,然后比较中间元素 mid 的平方和 x 的大小, 通过结果调整上下界范围;

此时的时间复杂度为需要二分查找的次数,为 O ( l o g n ) O(log n)O(logn);

3.1.2 实现


public int mySqrt(int x) {
    int low = 0;
    int high = x;
    int res = 0;
    while(low <= high){
        int mid = low + (high - low) / 2;
        if(x >= (long) mid * mid){
            res = mid;
            low = mid + 1;
        }else{
            high = mid - 1;
        }
    }
    return res;
}
目录
相关文章
|
算法 Java
LeetCode第69题x 的平方根
这篇文章是关于LeetCode第69题"x的平方根"的解题分享。作者介绍了使用二分查找算法来解决这个问题的方法,这是一种简单且有效的方式,可以显著降低求解平方根的时间复杂度。文章提供了详细的分析、解题思路和Java语言的代码实现,最后总结了二分查找思想在算法中的应用价值。
LeetCode第69题x 的平方根
|
SQL 算法 数据可视化
leetcode题目69:x的平方根【python】
leetcode题目69:x的平方根【python】
leetcode题目69:x的平方根【python】
【Leetcode-67. 二进制求和-69.x的平方根】
【Leetcode-67. 二进制求和-69.x的平方根】
90 0
|
算法 Java 索引
LeetCode初级算法题:寻找数组的中心索引+x的平方根+三个数的最大乘积+Leetcode 149:直线上最多的点数 Java详解
LeetCode初级算法题:寻找数组的中心索引+x的平方根+三个数的最大乘积+Leetcode 149:直线上最多的点数 Java详解
90 0
|
算法 Java Go
【经典算法】LeetCode 69. x 的平方根(Java/C/Python3/Golang实现含注释说明,Easy)
【经典算法】LeetCode 69. x 的平方根(Java/C/Python3/Golang实现含注释说明,Easy)
204 1
【经典LeetCode算法题目专栏分类】【第6期】二分查找系列:x的平方根、有效完全平方数、搜索二位矩阵、寻找旋转排序数组最小值
【经典LeetCode算法题目专栏分类】【第6期】二分查找系列:x的平方根、有效完全平方数、搜索二位矩阵、寻找旋转排序数组最小值
【力扣】69. x 的平方根
【力扣】69. x 的平方根
137 0
leetcode-69:x 的平方根
leetcode-69:x 的平方根
106 0
|
存储
leetcode:69. x 的平方根
利用二分查找思想,在0与x区间进行查找。 设置左边界 left (初始值为0),右边界 right(初始值为x)和中值 mid (值为区间的中间值),同时设置一个ans(初始值为-1)作为最终返回值。
143 0
YI
|
Go
LeetCode 0069. X的平方根【Go】
LeetCode 0069. X的平方根【Go】
YI
139 0