Given a non-negative integer c
, your task is to decide whether there're two integers a
and b
such that a2 + b2 = c.
Example 1:
Input: 5 Output: True Explanation: 1 * 1 + 2 * 2 = 5
Example 2:
Input: 3 Output: False
思路:没有说不让用Math.sqrt(C), 注意convert成int。 思路就是i,j双指针的想法,大于C,j--,小于C,i++;
class Solution {
public boolean judgeSquareSum(int c) {
int i=0; int j = (int)Math.sqrt(c);
while(i<=j){
int sum = i*i+j*j;
if(sum == c){
return true;
} else if(sum > c){
j--;
} else {
i++;
}
}
return false;
}
}