双指针法,另外注意这题没说两数不可以相等,所以判断条件是p1<=p2.
var judgeSquareSum = function(c) {
var p1=0,p2=Math.floor(Math.sqrt(c));
while(p1<=p2){
var temp=p1*p1+p2*p2;
if(temp==c) return true;
else if(temp>c) p2--;
else p1++;
}
return false;
};