import java.util.*;
public class Solution {
/**
*
* @param x int整型
* @return int整型
*/
public int mysqrt (int x) {
// write code here
int left = 1;
int right = x;
long mid = (left + right) / 2; // 在这里需要注意一个小细节: mid作为int类型数据。他的平方是完全可能超过int的取值范围的,需要使用long保证其不溢出
while(left < right) {
if (mid * mid <= x && (mid + 1) * (mid + 1) > x) {
break;
}
if (mid * mid > x) {
right = (int) mid;
} else{
left = (int) mid;
}
mid = (left + right) / 2;
}
return (int) mid;
}
}
京公网安备 11010502036488号