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