BS on result
Find maximum or minimum
69 Sqrt(x)
public int mySqrt(int x) {
if(x == 0) return 0;
int start = 0, end = x;
while(start+1<end){
int mid = start + (end-start)/2;
if(mid == x/mid) return mid; // mid移項避免int越界
else if(mid > x/mid) end = mid;
else start = mid;
}
if(end <= x/end) return end;
return start;
}First bad version
Wood cut
Last updated