平方数之和(力扣)双指针 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;
    }
}
相关推荐
放荡不羁的野指针2 分钟前
leetcode150题-动态规划
算法·动态规划
sin_hielo5 分钟前
leetcode 1161(BFS)
数据结构·算法·leetcode
一起努力啊~5 分钟前
算法刷题-二分查找
java·数据结构·算法
小途软件8 分钟前
高校宿舍访客预约管理平台开发
java·人工智能·pytorch·python·深度学习·语言模型
J_liaty12 分钟前
Java版本演进:从JDK 8到JDK 21的特性革命与对比分析
java·开发语言·jdk
水月wwww23 分钟前
【算法设计】动态规划
算法·动态规划
+VX:Fegn089533 分钟前
计算机毕业设计|基于springboot + vue律师咨询系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·课程设计
daidaidaiyu43 分钟前
一文学习和实践 当下互联网安全的基石 - TLS 和 SSL
java·netty
hssfscv1 小时前
Javaweb学习笔记——后端实战2_部门管理
java·笔记·学习
NE_STOP1 小时前
认识shiro
java