平方数之和(力扣)双指针 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;
    }
}
相关推荐
Тиё Сиротака1 天前
红包分配算法的严格数学理论与完整实现
算法
x***38161 天前
springboot和springframework版本依赖关系
java·spring boot·后端
S***84881 天前
SpringSecurity踢出指定用户
java
p***s911 天前
Spring数据库原理 之 DataSource
java·数据库·spring
adobehu1 天前
麒麟系统安装jdk17
java·jdk
potato_may1 天前
链式二叉树 —— 用指针构建的树形世界
c语言·数据结构·算法·链表·二叉树
spencer_tseng1 天前
java.util.IllegalFormatPrecisionException
java·printf
虹科网络安全1 天前
艾体宝干货 | Redis Java 开发系列#1 从零开始的环境搭建与实践指南
java·数据库·redis
铅笔侠_小龙虾1 天前
Arthas 命令
java·jvm
java修仙传1 天前
每日一题,力扣560. 和为 K 的子数组
算法·leetcode