题目链接:https://leetcode-cn.com/problems/sum-of-square-numbers/
思路:i遍历0~sqrt(c),判断是不是存在平方数等于c-i*i即可,判断方法就是(int) sqrt == sqrt, (int)sqrt是获得sqrt的整数部分,比如 (int)10.9=10,(int)10.1=10 。注意用long类型的i来遍历,因为i*i<=c判断的时候i*i可能会超int。
上代码:
class Solution {
public boolean judgeSquareSum(int c) {
for (long i = 0; i * i <= c; i++) {
double sqrt = Math.sqrt(c - i * i);
if ((int) sqrt == sqrt) {
return true;
}
}
return false;
}
}
该博客介绍了一种解决LeetCode平方数之和问题的算法,通过循环遍历并判断是否存在平方数等于目标值减去当前遍历数的平方的方法。关键在于使用long类型避免整数溢出,并利用(int)sqrt==sqrt来检查是否为平方数。
1110

被折叠的 条评论
为什么被折叠?



