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

来源:稀土掘金

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

目录
相关文章
|
6月前
|
人工智能 算法 BI
数学知识:质数与约数
数学知识:质数与约数
71 0
|
3月前
|
算法 Java
LeetCode第69题x 的平方根
这篇文章是关于LeetCode第69题"x的平方根"的解题分享。作者介绍了使用二分查找算法来解决这个问题的方法,这是一种简单且有效的方式,可以显著降低求解平方根的时间复杂度。文章提供了详细的分析、解题思路和Java语言的代码实现,最后总结了二分查找思想在算法中的应用价值。
LeetCode第69题x 的平方根
|
6月前
leetcode-69:x 的平方根
leetcode-69:x 的平方根
62 0
|
存储
leetcode:69. x 的平方根
利用二分查找思想,在0与x区间进行查找。 设置左边界 left (初始值为0),右边界 right(初始值为x)和中值 mid (值为区间的中间值),同时设置一个ans(初始值为-1)作为最终返回值。
97 0
数学知识-约数
数学知识-约数
|
机器学习/深度学习 人工智能
数学知识-质数
数学知识-质数
【力扣】x 的平方根 学霸题你学废了么?
【力扣】x 的平方根 学霸题你学废了么?
【力扣】x 的平方根 学霸题你学废了么?
|
存储 C++ 容器
蓝桥杯练习题五 - 四平方和(c++)
蓝桥杯练习题五 - 四平方和(c++)
167 0
每日一题1021:迭代法求平方根
题目描述: 用迭代法求 平方根 公式:求a的平方根的迭代公式为: X[n+1]=(X[n]+a/X[n])/2 要求前后两次求出的差的绝对值少于0.00001。 输出保留3位小数
163 0