Such a nice two pointer problem

class Solution {
public:
bool judgeSquareSum(int c) {
if (c < 0) return false;
long long left = 0, right = (long long)(sqrt(c));
while (left <= right){
long long sum = left*left + right*right;
if (sum == c) return true;
if (sum < c) left++;
if (sum > c) right--;
}
return false;
}
};

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store