Sqrt(x)
Implement int sqrt(int x)
.
Compute and return the square root of x.
Example
sqrt(3) = 1
sqrt(4) = 2
sqrt(5) = 2
sqrt(10) = 3
Challenge
O(log(x))
直接的做法是
注意不要直接判断i*i 会overflow
class Solution { /** * @param x: An integer * @return: The sqrt of x */ public int sqrt(int x) { // write your code here if(x<=1) return x; int i=0; for(i=1;i<=x;i++) { if(i<=x/i && i+1>x/(i+1)) { break; } } return i; } }
使用二分查找的做法。
class Solution { /** * @param x: An integer * @return: The sqrt of x */ public int sqrt(int x) { // write your code here if(x<=1) return x; int i=0; int beg=1; int end=x; int mid=0; while(beg<end) { mid=(end+beg)/2; if(x/mid==mid) { return mid; } else { if(mid<x/mid) { beg=mid+1; } else { end=mid-1; } } } return end; } }