题目描述
实现 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...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。