算法第三天力扣第69题:X的平方根

69. x 的平方根(可点击下面链接或复制网址进行做题)https://leetcode.cn/problems/sqrtx/https://leetcode.cn/problems/sqrtx/

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

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

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

示例 1:

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

示例 2:

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

利用二分查找(c++)的方法解题如下所示(省略力扣的起始内容)

cpp 复制代码
        int ans=-1, left=0, right=x;
        while(left<=right){
            long long mid=left+(right-left)/2; //中间值
            if(mid<=pow(x, 0.5)){
                ans=mid;
                left=mid+1;
            }else{
                right=mid-1;
            }
        }
        return ans;

解题思路:根据题意定义左右端点的值,找中间值mid为left+(right-left)/2,而且类型必须是long long型,原因是0<=x<=2**31-1。如果mid<=pow(x, 0.5),更新左边界为left=mid+1;反之,更新右边界为right=mid-1。最后,输出结果值。

感谢各位读者的阅读与支持,您的支持是我前进的动力!我希望我的博文能够带给您有益的信息和启发,让您的生活更加丰富多彩。如果您有任何问题或意见,请随时联系我或在评论区评论。再次感谢您的支持!希望以上示例对大家有帮助,如有疑问,欢迎您在评论区评论,谢谢!!!

二分查找的知识点如下链接所示,感兴趣的读者可点击链接或复制网址打开进行学习:

https://mp.csdn.net/mp_blog/creation/editor/139318710

相关推荐
小欣加油1 小时前
leetcode1926 迷宫中离入口最近的出口
数据结构·c++·算法·leetcode·职场和发展
星恒随风2 小时前
C++ 类和对象入门(五):初始化列表、explicit 和 static 成员详解
开发语言·c++·笔记·学习·状态模式
浪客灿心3 小时前
项目篇:模块设计与实现
数据库·c++
牛油果子哥q3 小时前
【C++ STL vector】C++ STL vector 终极精讲:动态数组底层原理、两倍扩容机制、迭代器失效、增删查改、性能剖析与工程避坑指南
开发语言·c++
为何创造硅基生物5 小时前
独占指针的创建std::make_unique 本身自带堆出现
c++
kyle~5 小时前
ROS 2 与 Isaac Sim 联合仿真(一)体系架构、环境选型与基础通信闭环
c++·机器人·nvidia·仿真·ros2
努力努力再努力wz6 小时前
【内存管理与高并发内存池系列】从 mmap 到 malloc:文件映射、匿名映射与 glibc 内存分配机制详解
linux·c语言·数据结构·数据库·c++·qt·链表
八解毒剂6 小时前
数据结构-平衡二叉树——对二叉搜索树的优化
数据结构·c++·算法
起床困难户5756 小时前
条款20:协助完成返回值优化
c++
啦啦啦啦啦zzzz7 小时前
算法总结(二分查找、双指针)
c++·算法