Leetcode-367 有效的完全平方数
2021-11-11 本文已影响0人
itbird01
367. 有效的完全平方数
解题思路
解法1:借助Math.sqrt和Math.pow,将数字开方之后的整数,如果平方依然是这个数字,这个数字满足完全平方数
解法2:二分查找,但是要注意mid*mid可能为long
解题遇到的问题
无
后续需要总结学习的知识点
无
##解法1
class Solution {
public boolean isPerfectSquare(int num) {
int k = (int) Math.sqrt(num);
return num == Math.pow(k, 2);
}
}
##解法2
class Solution {
public boolean isPerfectSquare(int num) {
int left = 0, right = num;
while (left <= right) {
int mid = (right - left) / 2 + left;
long temp = (long) mid * mid;
if (temp == num) {
return true;
} else if (temp < num) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return false;
}
}