首页 > 代码库 > 【leetcode刷题笔记】Sqrt(x)
【leetcode刷题笔记】Sqrt(x)
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)的值。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。