平方数之和(力扣)双指针 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;
    }
}
相关推荐
雨中飘荡的记忆17 小时前
保证金系统入门到实战
java·后端
Nyarlathotep011317 小时前
Java内存模型
java
CoovallyAIHub18 小时前
语音AI Agent编排框架!Pipecat斩获10K+ Star,60+集成开箱即用,亚秒级对话延迟接近真人反应速度!
深度学习·算法·计算机视觉
木心月转码ing20 小时前
Hot100-Day14-T33搜索旋转排序数组
算法
暮色妖娆丶1 天前
不过是吃了几年互联网红利罢了,我高估了自己
java·后端·面试
NE_STOP1 天前
MyBatis-参数处理与查询结果映射
java
会员源码网1 天前
内存泄漏(如未关闭流、缓存无限增长)
算法
狂奔小菜鸡1 天前
Day40 | Java中的ReadWriteLock读写锁
java·后端·java ee
颜酱1 天前
从0到1实现LFU缓存:思路拆解+代码落地
javascript·后端·算法