算法入门19——二分查找算法——X的平方根

1.题目

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

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

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

示例 1:

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

示例 2:

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

提示:

  • 0 <= x <= 231 - 1

2.算法原理

cpp 复制代码
class Solution 
{
public:
    int mySqrt(int x) 
    {
        if(x < 1) return 0;
        int left = 1,right = x;

        while(left < right)
        {
            long long mid = left + (right-left+1)/2;
            if(mid*mid <= x)
            {
                left = mid;
            }
            else
            {
                right = mid-1;
            }
        }
        return left;
    }
};
相关推荐
Ronaldinho Gaúch14 小时前
算法题中的日期问题
开发语言·c++·算法
踩坑记录14 小时前
leetcode ho100 124. 二叉树中的最大路径和 hard
leetcode
Chary201614 小时前
Opencascade VTK 集成服务 VIS
算法
楠秋92014 小时前
代码随想录算法训练营第三十一天|56. 合并区间 、 738.单调递增的数字、968.监控二叉树
数据结构·算法·leetcode·贪心算法
MadPrinter15 小时前
Python 异步爬虫实战:FindQC 商品数据爬取系统完整教程
爬虫·python·算法·自动化
郝学胜-神的一滴15 小时前
Effective Modern C++ 条款36:如果有异步的必要请指定std::launch::async
开发语言·数据结构·c++·算法
小此方15 小时前
Re:从零开始的 C++ STL篇(六)一篇文章彻底掌握C++stack&queue&deque&priority_queue
开发语言·数据结构·c++·算法·stl
0 0 015 小时前
CCF-CSP 40-2 数字变换(transform)【C++】考点:预处理
开发语言·c++·算法
香芋Yu15 小时前
【强化学习教程——01_强化学习基石】第06章_Q-Learning与SARSA
人工智能·算法·强化学习·rl·sarsa·q-learning
回敲代码的猴子15 小时前
2月15日打卡
数据结构·算法