平方数之和(力扣)双指针 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;
    }
}
相关推荐
zhanghaha13145 分钟前
Python语言基础:4_数据类型转换
java·前端·python
atunet7 分钟前
从算法优化到系统加速的多层级思考7
算法
Devin~Y1 小时前
互联网大厂Java面试实战:Spring Boot、MyBatis、Redis、Kafka、JWT、Spring Cloud 与 AI 场景追问
java·spring boot·redis·spring cloud·kafka·mybatis·spring security
Navigator_Z1 小时前
LeetCode //C - 1156. Swap For Longest Repeated Character Substring
c语言·算法·leetcode
Reart1 小时前
Leetcode 1143.最长公共子序列(720)
后端·算法
花生了什么事o1 小时前
DDD:领域驱动设计的初步认识
java·数据库
无相求码1 小时前
const vs #define:C语言常量定义的差异
c语言·算法
BGK1123581 小时前
基于qemu_v8+optee 4.00 平台构建 ca/ta
java·大数据·数据库
先吃饱再说2 小时前
LeetCode 226. 翻转二叉树
算法
何中应2 小时前
Spring Boot整合Doris
java·数据库·spring boot