跳到主要内容

633.平方数之和

链接:633.平方数之和
难度:Medium
标签:数学、双指针、二分查找
简介:给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c 。

题解 1 - typescript

  • 编辑时间:2021-04-28
  • 执行用时:92ms
  • 内存消耗:39.5MB
  • 编程语言:typescript
  • 解法介绍:确定边界值进行逐个比较。
function judgeSquareSum(c: number): boolean {
let num1 = 0;
let num2 = ~~Math.sqrt(c) + 1;
while (num1 <= num2) {
const sum = num1 ** 2 + num2 ** 2;
if (sum > c) num2--;
else if (sum < c) num1++;
else return true;
}
return false;
}

题解 2 - undefined

  • 编辑时间:2024-11-04
  • 执行用时:183ms
  • 内存消耗:16.25MB
  • 编程语言:undefined
  • 解法介绍:遍历每一个数。
class Solution:
def judgeSquareSum(self, c: int) -> bool:
a = 0
while a * a + a * a <= c:
b2 = c - a * a
if int(sqrt(b2)) ** 2 == b2: return True
a += 1
return False