20.07.15 LeetCode69. x的平方根
1 实现 int sqrt(int x) 函数。
2
3 计算并返回 x 的平方根,其中 x 是非负整数。
4
5 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。
6
7 示例 1:
8
9 输入: 4
10 输出: 2
11 示例 2:
12
13 输入: 8
14 输出: 2
15 说明: 8 的平方根是 2.82842...,
16 由于返回类型是整数,小数部分将被舍去。
思路:二分查找
1 class Solution {
2 public:
3 int mySqrt(int x) {
4 int left = 0;
5 int right = x;
6 if(x==0)
7 return 0;
8 if(x==1)
9 return 1;
10 while(right-left>1)
11 {
12 int mid = (right+left)/2;
13 if(x/mid<mid)//这里最好使用'/',使用'*'可能导致溢出
14 {
15 right = mid;
16 }
17 else
18 left = mid;
19 }
20 return left;
21 }

浙公网安备 33010602011771号