您的位置:首页 > 其它

LeetCode69 Sqrt(x)

2017-10-08 21:24 447 查看

LeetCode69 Sqrt(x)

问题描述

Implement int sqrt(int x).

Compute and return the square root of x.

简单介绍

这道题的就是实现sqrt方法。可以采用二分法进行,寻找适合的整数。但是网上很多博客都再说这个超出int范围的事情,我倒认为既然平方都是int范围内的,那么这个数字肯定也在int内,而数字肯定不大于46340(46341*46341>2147395600)。

所以我就直接把右边大于4630的数字砍掉了。不知道这算不算作弊。/(ㄒoㄒ)/~~

代码如下

public int mySqrt(int x) {
if(x>=2147395600){
return 46340;
}
int left=0,right =x/2+1;
while(left<=right){
int mid=(left+right)/2;
int s;
if(mid>46340){
mid=46340;

}s=mid*mid;
if(s==x){
return mid;
}else if(s<x){
left=mid+1;
}else {
right=mid-1;
}
}
return right;
}


LeetCode学习笔记持续更新

GitHub地址 https://github.com/yanqinghe/leetcode

CSDN博客地址 http://blog.csdn.net/yanqinghe123/article/category/7176678
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  square leetcode 博客