乐趣区

关于java:二分查找-x-的平方根

题目形容

实现 int sqrt(int x) 函数。
计算并返回 x 的平方根,其中 x 是非负整数。
因为返回类型是整数,后果只保留整数的局部,小数局部将被舍去。

示例:
输出: 8
输入: 2
阐明: 8 的平方根是 2.82842…,
  因为返回类型是整数,小数局部将被舍去。

解题思路

应用二分查找,找到最初一个平方值小于 x 的数

语言积攒和技巧

1、将平方值转为 long 类型,避开溢出问题
2、应用 46340 这个最大的可能值,能够缩小几次运算
3、编写程序的时候,取到最初一个平方值小于 x 的数(y),下一个的话,因为 mid- 1 的起因会导致 low >= high,所以会退出循环,咱们将 y 返回即可。能够缩小几个逻辑判断

代码链接

https://github.com/lunaDolphi…
https://github.com/lunaDolphi…

退出移动版