Method 1:
Binary Search
Code:
public class Solution { public int mySqrt(int x) { if (x < 0) return -1; if (x == 0) return 0; long low = 1; long high = x/2+1; while (low <= high){ long mid = (low+high)/2; if (mid * mid == x) return (int) mid; else if (mid * mid < x){ low = mid + 1; }else{ high = mid -1; } } return (int)high; } }
Another Method:
Newton method.