题目描述
实现 int sqrt(int x) 函数。
计算并返回 x 的平方根,其中 x 是非负整数。
由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。
示例 1:
输入: 4 输出: 2 示例 2:
输入: 8 输出: 2 说明: 8 的平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。
解题思路
二分查找
这个题目可以用二分查找来做,给定x
,求平方根,当x>=2
时,x
的平方根一定小于x/2
且大于0。我们可以不断的逼近x,取中间值然后进行平方,与x
比较,如果平方值比x
小,则向中间值后面进行查找,否则在前面进行查找。
代码实现:
|
|