本文章是⭐️小Y学算法⭐️的内容,该专栏还有多篇优质内容在等待你观看,现在点击右上角点击这个————🚀订阅专栏🚀 就可以免费观看多篇相关内容的文章啦!
- 📢前言
- 🌲原题样例
- 🌻C#方法:二分查找
- 🌻Java 方法一:二分法
- 🌻Java 方法二:牛顿迭代
- 💬总结
- 🚀往期优质文章分享
- 🌲 每天打卡一道算法题,既是一个学习过程,又是一个分享的过程😜
- 🌲 提示:本专栏解题 编程语言一律使用 C# 和 Java 两种进行解题
- 🌲 要保持一个每天都在学习的状态,让我们一起努力成为算法大神吧🧐!
- 🌲 今天是力扣算法题持续打卡第21天🎈!
实现int sqrt(int x)
函数。
计算并返回 x 的平方根,其中 x 是非负整数。
由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。
示例 1:
输入: 4
输出: 2
示例 2:
输入: 8
输出: 2
说明: 8 的平方根是 2.82842...,
由于返回类型是整数,小数部分将被舍去。
🌻C#方法:二分查找
思路解析
根据题意我们知道,最终目的就是返回 x 的平方根
我们可以直接调用Sqrt方法找到平方根,但是这就不是算法的本意啦~
所以可以使用二分法来解决这个问题
二分查找的下界为 0,上界可以粗略地设定为 x。
在二分查找的每一步中,我们只需要比较中间元素 mid 的平方与 x 的大小关系,并通过比较的结果调整上下界的范围。 由于我们所有的运算都是整数运算,不会存在误差
用 midx/mid 而不是 mid*midx 防止数值溢出
代码:
public class Solution {
public int MySqrt(int x)
{
if (x == 0) return 0;
int left = 1, right = x, mid = (left+right)/2;
while(left
关注
打赏
热门博文
- 通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
- 花一天时间做一个高质量飞机大战游戏,过万字Unity完整教程!漂亮学妹看了直呼666!
- 自动化测试哪家强?Apipost用实力来告诉你。
- Unity实战篇 | 游戏中控制 地图无限自动化生成 的方法,进一步优化项目
- Unity实战篇 |制作一个跟随鼠标转向的 简易箭头指示标,包括 UI指向 和 3D指向标
- 【100个 Unity实用技能】| Unity读取本地文件(Json,txt等)的三种方法示例
- 【100个 Unity实用技能】| Unity中常用的几种路径 分析,不同平台路径总结
- 实测:游戏情景中,远控软件实力如何?一篇告诉你ToDesk的强大之处
- 【100个 Unity实用技能】| C#中List.Find 方法详解 查找符合要求的第一个元素并返回
- 一顿饭的时间,教你怎样快速使用 动态代理ip 做一个获取Steam 热销商品 的方法