平方数之和(力扣)双指针 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;
    }
}
相关推荐
java1234_小锋14 分钟前
Java高频面试题:Redis的Key和Value的设计原则有哪些?
java·redis·面试
iPadiPhone18 分钟前
流量洪峰下的数据守护者:InnoDB MVCC 全实现深度解析
java·数据库·mysql·面试
Nuopiane19 分钟前
关于C#/Unity中单例的探讨
java·jvm·c#
win x21 分钟前
JVM类加载及双亲委派模型
java·jvm
weixin_4588726131 分钟前
东华复试OJ二刷复盘2
算法
Charlie_lll32 分钟前
力扣解题-637. 二叉树的层平均值
算法·leetcode
毕设源码-赖学姐35 分钟前
【开题答辩全过程】以 滑雪场租赁管理系统的设计与实现为例,包含答辩的问题和答案
java
爱淋雨的男人41 分钟前
自动驾驶感知相关算法
人工智能·算法·自动驾驶
Javatutouhouduan42 分钟前
SpringBoot整合reids:JSON序列化文件夹操作实录
java·数据库·redis·html·springboot·java编程·java程序员
wen__xvn1 小时前
模拟题刷题3
java·数据结构·算法