「每日LeetCode」2021年7月14日

本文最后更新于:2023年3月19日 晚上

Lt1925. 统计平方和三元组的数目

1925. 统计平方和三元组的数目

一个 平方和三元组 (a,b,c) 指的是满足 a + b = c整数  **三元组 abc
给你一个整数 n ,请你返回满足_ _1 <= a, b, c <= n 的 **平方和三元组
的数目。
示例 1:

1
2
3
输入:n = 5
输出:2
解释:平方和三元组为 (3,4,5) 和 (4,3,5) 。

示例 2:

1
2
3
输入:n = 10
输出:4
解释:平方和三元组为 (3,4,5),(4,3,5),(6,8,10) 和 (8,6,10) 。

提示:

  • 1 <= n <= 250

思路

先求出所有可能的平方,放入 set 中。再遍历每两个数,计算平方和看是否在 set 中,是的话计数加一,最后返回即可

解答

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
* @param {number} n
* @return {number}
*/
var countTriples = function (n) {
const set = new Set();
let count = 0;
for (let i = 1; i <= n; i++) {
set.add(i ** 2);
}
for (let i = n; i >= 1; i--) {
for (let j = n - 1; j >= 1; j--) {
if (set.has(i ** 2 - j ** 2)) count++;
}
}
return count;
};