平方数之和(力扣)双指针 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;
    }
}
相关推荐
世纪摆渡人20 分钟前
SpringBoot-SpringBoot源码解读
java·spring boot·后端
SYKMI1 小时前
@JsonFormat时区问题
java·前端·数据库
小猿_001 小时前
C语言指针进阶
c语言·数据结构·算法
摆烂仙君3 小时前
小米2025年校招笔试真题手撕(二)
算法
z人间防沉迷k5 小时前
后端开发概念
java·后端
caihuayuan55 小时前
Vue3响应式数据: 深入分析Ref与Reactive
java·大数据·spring boot·后端·课程设计
CodeWithMe6 小时前
【C/C++】线程状态以及转换
java·c语言·c++
苹果酱05676 小时前
Java设计模式:探索编程背后的哲学
java·vue.js·spring boot·mysql·课程设计
biubiubiu07066 小时前
windows中JDK切换版本
java·开发语言