Sqrt(x)
class Solution { /** * @param x: An integer * @return: The sqrt of x */ public int sqrt(int x) { // write your code here if (x < 0) { return -1; } if (x == 0 || x == 1) { return x; } long start = 1; long end = x; while (start + 1 < end) { long mid = start + (end - start) / 2; //System.out.println(start + " " + end + " "+ mid) ; if (mid * mid == x) { return (int)mid; } else if (mid * mid < x) { start = mid; } else { end = mid; } } if (start * start == x) { return (int)start; } if (end * end == x) { return (int)end; } if (end * end < x) { return (int)end; } return (int)start; } }
posted on 2017-05-02 09:40 codingEskimo 阅读(82) 评论(0) 编辑 收藏 举报