平方数之和(力扣)双指针 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 分钟前
【数据结构与算法】哈希专题
数据结构·c++·算法·leetcode·哈希算法
ceclar1232 分钟前
C#字节流与字符流
算法·c#·.net
Mahir086 分钟前
ConcurrentHashMap 底层原理深度解密:从分段锁到 CAS + 红黑树的演进全解
java·面试·concurhashmap
大白话_NOI7 分钟前
【洛谷 P1024 】[NOIP2001 提高组] 一元三次方程求解 - 详细分析与C++实现
c++·算法
Matthew_zhu_8 分钟前
P3374 【模板】树状数组 1 题解
算法
随意起个昵称8 分钟前
区间dp-进阶题目1(进阶合并)
c++·算法·动态规划
伶俜669 分钟前
鸿蒙原生应用实战(四)ArkUI 语音变声器:录音 + 4 种音效 + 音调变换算法
算法·华为·harmonyos
阿维的博客日记9 分钟前
那用到动态代理,关键的特征又是什么呢
java·动态代理
都说名字长不会被发现12 分钟前
Spring Boot Starter 中间件账号密码加密方案设计与实现
java·spring boot·后端·中间件
摇滚侠12 分钟前
Maven 依赖范围
java·maven