平方数之和(力扣)双指针 JAVA

给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a^2 + b^2 = c 。

示例 1:

输入:c = 5

输出:true

解释:1 * 1 + 2 * 2 = 5

示例 2:

输入:c = 3

输出:false

提示:

0 <= c <= 2^31 - 1

解题思路:

1、采用双指针在构建的二维矩阵中查找

2、得用long类型变量

3、l = 0, r = Math.sqrt( c )

代码:

java 复制代码
class Solution {
    public boolean judgeSquareSum(int c) {
         long l = 0, r = (long) Math.sqrt(c);
         while(l <= r) {
        	 if(l * l + r * r > c) r --;
        	 else if(l * l + r * r < c) l ++;
        	 else return true;
         }
         return false;
    }
}
相关推荐
用户219032652735几秒前
实现Spring Cloud Sleuth的Trace ID追踪日志实战教程
java·后端
vx_bisheyuange几秒前
基于SpringBoot的在线互动学习网站设计
java·spring boot·spring·毕业设计
暗之星瞳几秒前
线性回归+实例
算法·回归·线性回归
roman_日积跬步-终至千里几秒前
【源码分析】StarRocks TRUNCATE 语句执行流程:从 SQL 到数据清空的完整旅程
java·数据库·sql
little~钰1 分钟前
整体二分——上
算法
雨中飘荡的记忆3 分钟前
Spring状态机深度解析:从入门到生产实战
java·spring
Kings903 分钟前
线程池导致的 shutdown失败的完整排查过程
java·spring boot
在坚持一下我可没意见5 分钟前
Spring 后端安全双剑(下篇):JWT 无状态认证 + 密码加盐加密实战
java·开发语言·spring boot·后端·安全·spring
Swift社区7 分钟前
LeetCode 447 - 回旋镖的数量
linux·算法·leetcode