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 }
posted @ 2020-07-15 10:48  γGama  阅读(218)  评论(0)    收藏  举报