您的位置:首页 > 其它

LeetCode-633. Sum of Square Numbers

2018-02-25 18:32 190 查看

Description



Example 1



Example 2



Solution 1(C++)

class Solution {
public:
bool judgeSquareSum(int c) {
for(int i=0;i<=sqrt(c);i++){
int j=c-i*i;
if(sqrt(j)==(int)sqrt(j)){
return true;
}
}
return false;
}
};


Solution 2(C++)

class Solution {
public:
bool judgeSquareSum(int c) {
for(int i=0;i<=sqrt(c);i++) {
int t=sqrt(c-i*i);
if(t*t==c-i*i) return true;
}
return false;
}
};


Solution 3(C++)

class Solution {
public:
bool judgeSquareSum(int c) {
int a = 0, b = sqrt(c);
while(a <= b){
if(a*a + b*b == c)return true;
else if(a*a + b*b > c)b--;
else a++;
}
return false;
}
};


算法分析

解法一与解法二是原理上是相同的。解法三也可以学习学习。

程序分析

略。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: