平方数之和(力扣)双指针 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;
    }
}
相关推荐
zl_vslam2 分钟前
SLAM中的非线性优-3D图优化之相对位姿Between Factor-四元数(十二)
人工智能·算法·计算机视觉
coding者在努力10 分钟前
算法竞赛中根据数据规模猜测算法
c++·算法·stl·时间复杂度
jing-ya13 分钟前
day 59 图论part10
java·开发语言·数据结构·算法·图论
阿Y加油吧24 分钟前
力扣打卡——搜索二维矩阵、相交链表
线性代数·leetcode·矩阵
短剑重铸之日24 分钟前
《ShardingSphere解读》16 改写引擎:如何理解装饰器模式下的 SQL 改写实现机制?
java·数据库·后端·sql·shardingsphere·分库分表·装饰器模式
普贤莲花28 分钟前
【2026年第11周---写于20260322】
程序人生·算法·leetcode
q54314708729 分钟前
VScode 开发 Springboot 程序
java·spring boot·后端
小白自救计划31 分钟前
力扣知识点杂集
算法·leetcode·哈希算法
阿贵---34 分钟前
分布式系统C++实现
开发语言·c++·算法
不染尘.35 分钟前
最短路径之Bellman-Ford算法
开发语言·数据结构·c++·算法·图论