题目
level: easy
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
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sum-of-square-numbers
解题思路
借助双指针实现;由于是两数平方和==target,则单个数最大为sqrt(target),定义双指针的初始值时一个为0,另一个为sqrt(target)向下取整的整数;由于两数平方之和可能超出int表示范围,因此本题采用数据类型long记录中间数据;
- 声明两个变量,int l 代表从前到后遍历的数据,int r 代表从后往前遍历的数据;
- 当 l<=r 时,判断 l2 + r2 的值与target的大小。若 l2 + r<