码迷,mamicode.com
首页 > 其他好文 > 详细

Leetcode 69 Sqrt(x)

时间:2015-02-25 08:01:21      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:

Implement int sqrt(int x).

Compute and return the square root of x.

 

求平方根, 用的是二分法. 从 0 - x, 使用二分的思想啊~

为了防止overflow, 把low和up用long。然后return int类型就行了~

 

据说还有一种牛顿迭代法。。太数学了。。估计要是面试也说不明白。。。就不写了。。

 

 1 public int sqrt(int x) {
 2         long low = 0;
 3         long up = (long)x;
 4         while(low <= up){
 5             long mid = (low + up) / 2;
 6             if(mid * mid > x)
 7                 up = mid - 1;
 8             else if(mid * mid < x)
 9                 low = mid + 1;
10             else
11                 return (int)mid;
12         }
13         return (int)up;
14     }

 

Leetcode 69 Sqrt(x)

标签:

原文地址:http://www.cnblogs.com/sherry900105/p/4299120.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!