永州网,内容丰富有趣,生活中的好帮手!
永州网 > 知识 > 正文

LeetCode-69: 计算 x 的平方根

时间:2024-02-08

该问题要求实现一个函数来计算非负整数x的平方根

友情提示:本文共有 868 个字,阅读大概需要 2 分钟。

“Leetcode 69 - x的平方根”是一道经典的数学问题,考察了数值计算和二分查找算法。该问题要求实现一个函数来计算非负整数x的平方根。采用二分查找算法可以在时间复杂度O(logn)内找到精确的平方根。这道题目对于算法和数据结构的理解有很大帮助,不仅考察了对最基本的运算的理解,还锻炼了对二分查找算法的掌握。在Leetcode的算法题库中,这道题目是一个很好的练习题,也是理解二分查找思想的绝佳案例。

实现 int sqrt(int x) 函数。

计算并返回 x 的平方根,其中 x 是非负整数。

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

示例 1:

输入: 4

输出: 2

示例 2:

输入: 8

输出: 2

说明: 8 的平方根是 2.82842...,

由于返回类型是整数,小数部分将被舍去。

直接用JDK方法

publicstaticintmySqrt(intx){return (int) Math.sqrt(x);}

防止溢出,使用long类型保存数字

public static int mySqrt2(int x) {long x0 = x;while (x0 * x0 > x) {x0 = (x0 + x / x0) / 2;}return (int) x0;}

使用二分法计算

public static int mySqrt(int x) {if (x / 2 == 0) return x;int left = 1, right = x / 2, res = 0;while (left <= right) {long mid = left + (right - left) / 2;long temp = mid * mid;if (temp == x) {return (int) mid;} else if (temp > x) {right = (int) mid - 1;} else {res = (int) mid;left = (int) mid + 1;}}return res;}

收集不易,本文《LeetCode-69: 计算 x 的平方根》知识如果对你有帮助,请点赞收藏并留下你的评论。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
显示评论内容(4)
  1. 夜迷茫2024-02-08 13:37夜迷茫[黑龙江省网友]121.54.182.72
    @树叶随想这个题目让我思考了好久,但当我写出正确的解法时,真是一种成就感。
    顶9踩0
  2. 树叶随想2024-02-08 13:22树叶随想[北京市网友]45.120.241.203
    计算平方根是一个很基础但又很重要的数学问题,LeetCode将它变得更加有趣。
    顶0踩0
  3. 祖厉河蔺哥2024-02-08 13:06祖厉河蔺哥[新疆网友]203.23.197.246
    感觉LeetCode的题目都好有意思,每道题都能让我学到新知识。
    顶5踩0
  4. jay&zsy2024-02-08 12:51jay&zsy[宁夏网友]103.25.8.94
    这个题目有点难度,但是写完之后感觉对数学理解又加深了一些。
    顶6踩0
相关阅读
掌握这9个数学速算技巧 轻松快速解答各类计算题!

掌握这9个数学速算技巧 轻松快速解答各类计算题!

无论是加减乘除、百分比、平方根还是分数运算,这些技巧都会让你事半功倍

2024-02-05 #知识

杰克的非凡事迹:勇敢 冒险与奉献的故事

杰克的非凡事迹:勇敢 冒险与奉献的故事

作为一名志愿者,他积极参与当地的慈善活动,帮助那些需要帮助的人们

2024-01-31 #头条

初一年级第二学期数学单元测试题分享:增强学生数学能力的关键

初一年级第二学期数学单元测试题分享:增强学生数学能力的关键

一、选择题每小题2分,共20分1、16的算术平方根是A、4B、C、8D、2、实数,0.3,,,中,无理数的个数是A、2B、3C、4D、53、如果座位表上5列2行记作5,2,那么4,3表示A、3列5行B、...

2024-01-18 #百科