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;
}
};

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

No responses yet

Write a response