🌈🌈😄😄
欢迎来到茶色岛独家岛屿,本期将为大家揭晓LeetCode 69. x 的平方根 ,做好准备了么,那么开始吧。
🌲🌲🐴🐴
一、题目名称
69. x 的平方根
二、题目要求
三、相应举例
四、限制要求
五、解决办法
二分查找
六、代码实现
注意:
一、题目名称
69. x 的平方根
二、题目要求
给你一个非负整数 x ,计算并返回 x 的 算术平方根 。
由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。
注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。
三、相应举例
示例 1:
输入:x = 4
输出:2
示例 2:输入:x = 8
输出:2
解释:8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。
四、限制要求
0 <= x <= 231 - 1
五、解决办法
二分查找
left<=right,这个需要我们平时不断的实验考查才可以,实践出真知。如果直接left<right的话,输入1就会直接输出ans(我赋的是0),就不是我们想要的结果了。
剩下操作就是二分查找基础用法啦,相信小伙伴们多多敲代码就会愈发熟练的。😄😄
六、代码实现
class Solution {
public int mySqrt(int x) {
int left=1,right=x;
int ans=0;
while(left<=right){
int mid=(right-left)/2+left;
if((long)mid*mid>x)
right=mid-1;
else{
ans=mid;
left=mid+1;
}
}
return ans;
}
}
注意:
在遇到上面示例时,已超出int型最大限制,故需强转成long或更大才可以,(long)mid*mid>x。