LeetCode刷题笔记 633.平方数之和

给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c 。

 

示例 1:

输入:c = 5
输出:true
解释:1 * 1 + 2 * 2 = 5
示例 2:

输入:c = 3
输出:false
示例 3:

输入:c = 4
输出:true
示例 4:

输入:c = 2
输出:true
示例 5:

输入:c = 1
输出:true
 

提示:

0 <= c <= 231 - 1

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sum-of-square-numbers

思路:

  a^2 + b^2 = c^2,设a<b,从a=0 ,b=√c开始查找

当a^2 + b^2 > c^2时,b-1

当a^2 + b^2 < c^2时,a+1

代码:

复制代码
 1 class Solution {
 2 public:
 3     bool judgeSquareSum(int c) {
 4         long a = 0;
 5         long b = (int) sqrt(c);
 6         while (a <= b) {
 7             long res = a * a + b * b;
 8             if (res == c) {
 9                 return true;
10             } else if ( res < c) {
11                 ++a;
12             } else {
13                 --b;
14             }
15         }
16         return false;
17     }
18 };
复制代码

 

posted @   仓隽  阅读(28)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示