力扣每日一题69:x的平方根

题目描述:

给你一个非负整数 x ,计算并返回 x算术平方根

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

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

示例 1:

复制代码
输入:x = 4
输出:2

示例 2:

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

提示:

  • 0 <= x <= 231 - 1

思路和题解:

在[1,x]内找一个满足k^2<=x的最大数。在一个升序的区间内查找,可以用二分法。

代码:

cpp 复制代码
class Solution {
public:
    int mySqrt(int x) {
        int l=0,r=x;
        int ans=1;
        while(l<=r)
        {
            int mid=(r+l)/2;
            // cout<<"l=="<<l<<"  mid=="<<mid<<"  r=="<<r<<endl;
            if((long long) mid*mid<=x)
            {
                ans=mid;
                l=mid+1;
            }
            else
            {
                r=mid-1;
            }
            // cout<<"l=="<<l<<"  mid=="<<mid<<"  r=="<<r<<endl;
        }
        return ans;
    }
};
相关推荐
平行侠8 分钟前
A15 工业路由器IP前缀高速检索与内存压缩系统
网络·tcp/ip·算法
阿旭超级学得完1 小时前
C++11包装器(function和bind)
java·开发语言·c++·算法·哈希算法·散列表
li星野1 小时前
位运算 & 数学 & 高频进阶九题通关(Python + C++)
c++·python·学习·算法
jerryinwuhan2 小时前
hello算法,简单讲(1)
算法·排序算法
y = xⁿ2 小时前
20天速通LeetCodeday15:BFS广度优先搜索
算法·宽度优先
400分2 小时前
吃透RAG核心-----语义检索与关键字检索底层原理
算法·架构
目黑live +wacyltd2 小时前
算法备案:常见驳回原因与应对策略
人工智能·算法
磊 子2 小时前
多态类原理+四种类型转换+异常处理
开发语言·c++·算法
染指11103 小时前
3.AI大模型-token是什么-大模型底层运行机制
人工智能·算法·机器学习
谙弆悕博士4 小时前
快速学C语言——第19章:C语言常用开发库
c语言·开发语言·算法·业界资讯·常用函数