考察点:[整数范围]
这道题有一细节需要注意
else if(x/i<i) return i-1;
这一行是关键,如果写成x<ii,当ii大于int的上限时,会溢出
class Solution {
public int mySqrt(int x) {
int i=1;
while(i>0){
if(x==i*i)return i;
else if(x/i<i) return i-1;//这一行是关键,如果写成x<i*i,当i*i大于int的上限时,会溢出
else i++;
}
return 0;
}
}
网友评论