思路:双指针,左指针0开始,右指针sqrt(c)+1开始,得到的值大了,右指针–,小了左指针++,唯一需要注意的就是本题大小超过int,开longlong
class Solution { public: bool judgeSquareSum(int c) { long long l,r; l = 0; r = sqrt(c)+1; while(l <= r){ long long temp = l * l + r * r; if(temp == c){ return true; }else if(temp > c){ r--; }else{ l++; } } return false; } };
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)