69. x 的平方根|刷题打卡

简介: 实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。

一、题目描述:


实现 int sqrt(int x) 函数。

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

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

示例 1:

输入:4

输出:2


示例 2:

输入:8

输出:2

解释:8 的平方根是 2.82842...,  由于返回类型是整数,小数部分将被舍去。


二、思路分析:


思路一:

拿到这个题目,第一想法就是循环。条件i * i < x && (i + 1) * (i + 1) > x。介于两个连续数的平方之间。然后考虑特殊情况;如果是0,直接返回;如果等于i*i,返回i(即1);如果等于(i + 1) * (i + 1),返回i+1;其余情况,i++。


思路二:

想思路一的时候,突然想到:pow这个方法。。。

只能说,此方法果然好用。


三、AC 代码:


方法一:


function mySqrt(x: number): number {
    let i = 0;
    while (i <= x/2) {
    if (x === 0) return 0;
        if (i * i < x && (i + 1) * (i + 1) > x) return i;
        else if(i * i === x) return i;
        else if ((i  + 1) * (i + 1) === x) return i + 1;
        else i++;
    }
};


方法二:

function mySqrt(x: number): number {
     if (x === 0) return 0;
     return Math.floor(Math.pow(x,0.5));
};


四、总结:


有时候借助数学自带的方法简单很多。看了官方题解,说实话一头懵。


题目来源:leetcode。


作者:ClyingDeng

链接:https://juejin.cn/post/6935720452950065160

来源:稀土掘金

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

目录
相关文章
|
5月前
|
算法 Java
LeetCode第69题x 的平方根
这篇文章是关于LeetCode第69题"x的平方根"的解题分享。作者介绍了使用二分查找算法来解决这个问题的方法,这是一种简单且有效的方式,可以显著降低求解平方根的时间复杂度。文章提供了详细的分析、解题思路和Java语言的代码实现,最后总结了二分查找思想在算法中的应用价值。
LeetCode第69题x 的平方根
|
8月前
【力扣】69. x 的平方根
【力扣】69. x 的平方根
|
8月前
leetcode-69:x 的平方根
leetcode-69:x 的平方根
70 0
|
存储
leetcode:69. x 的平方根
利用二分查找思想,在0与x区间进行查找。 设置左边界 left (初始值为0),右边界 right(初始值为x)和中值 mid (值为区间的中间值),同时设置一个ans(初始值为-1)作为最终返回值。
108 0
力扣69x的平方根
力扣69x的平方根
68 0
|
存储 C++ 容器
蓝桥杯练习题五 - 四平方和(c++)
蓝桥杯练习题五 - 四平方和(c++)
175 0
|
算法
每日算法刷题Day5-平方矩阵II和III、蛇形矩阵图解
⭐每日算法题解系列文章旨在精选重点与易错的算法题,总结常见的算法思路与可能出现的错误,与笔者另一系列文章有所区别,并不是以知识点的形式提升算法能力,而是以实战习题的形式理解算法,使用算法。
179 0
每日算法刷题Day5-平方矩阵II和III、蛇形矩阵图解
每日一题1021:迭代法求平方根
题目描述: 用迭代法求 平方根 公式:求a的平方根的迭代公式为: X[n+1]=(X[n]+a/X[n])/2 要求前后两次求出的差的绝对值少于0.00001。 输出保留3位小数
173 0