leetcode统计数字问题(LeetCode算法第69题x的平方根)

问题描述:实现 int sqrt(int x) 函数,今天小编就来聊一聊关于leetcode统计数字问题?接下来我们就一起去研究一下吧!

leetcode统计数字问题(LeetCode算法第69题x的平方根)

leetcode统计数字问题

问题描述:

实现 int sqrt(int x) 函数。

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

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

示例 1:

输入: 4 输出: 2

示例 2:

输入: 8 输出: 2 说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。

思路:

因为结果只保留整数的部分,当 x > 4 时,x 的平方根 < x / 2, 当 x < =4 时,x 的平方根 < x / 2 1。因此使用二分法,在 0 与 x / 2 1 之间查找一个数值使得它的平方最接近x。

java代码:

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

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页