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

【leetcode刷题笔记】Sqrt(x)

时间:2014-07-19 17:37:22      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   re   代码   

Implement int sqrt(int x).

Compute and return the square root of x.


 

题解:二分的方法,从0,1,2.....x搜索sqrt(x)的值。

代码如下:

 1 public class Solution {
 2     public int sqrt(int x) {
 3         long l = 0;
 4         long r = x;
 5         
 6         while(l <= r){
 7             long mid = l + (r-l)/2;
 8             if(x == mid*mid)
 9                 return (int)mid;
10             else if(x < mid*mid)
11                 r = mid-1;
12             else {
13                 l = mid+1;
14             }
15         }
16         return (int)r;
17     }
18 }

需要注意的一点就是mid*mid的值有可能超过int的范围,所以要用long型规定各个变量。开始用的int型,结果出现了TLE的错误,猜想是int越界以后变成负数,就一直找不到sqrt(x)的值。

【leetcode刷题笔记】Sqrt(x),布布扣,bubuko.com

【leetcode刷题笔记】Sqrt(x)

标签:style   blog   color   io   re   代码   

原文地址:http://www.cnblogs.com/sunshineatnoon/p/3853726.html

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