【ATT】【second】Sqrt(x)
二分查找。要注意越界问题。以及除数是否为0的情况
int sqrt(int x) { // Note: The Solution object is instantiated only once and is reused by each test case. if(x<=1) return x; int left = 1,right = x; while(left<=right) { int mid = left + (right-left)/2; int tmp = x/mid; //用除法,因为mid*mid可能越界;用除法的话,考虑分母是否为0,因此x从2开始计算,那么mid不可能为0 if(tmp<mid) right = mid-1; else if(tmp>mid) left = mid+1; else return mid; } return right; //返回的是right }