LeetCode Algorithm 1925. 统计平方和三元组的数目
Posted Alex_996
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode Algorithm 1925. 统计平方和三元组的数目相关的知识,希望对你有一定的参考价值。
Ideas
三层循环暴力肯定超时,需要优化。
a, b, c的关系需要满足 a 2 + b 2 = c 2 a^2+b^2=c^2 a2+b2=c2,那么 c = a 2 + b 2 c = \\sqrta^2+b^2 c=a2+b2,需要验证c为整数并且c小于n。
没有限定a和b的大小关系,但是a, b < c,既然 a 2 + b 2 = c 2 a^2+b^2=c^2 a2+b2=c2,那么 b 2 + a 2 = c 2 b^2+a^2=c^2 b2+a2=c2,所以可以让a<b,然后每找到一个满足条件的三元组就算为两个。
Code
Python
class Solution:
def countTriples(self, n: int) -> int:
ans = 0
for a in range(1, n + 1):
for b in range(a + 1, n + 1):
c = sqrt(a ** 2 + b ** 2)
if c % 1 == 0 and c < n + 1:
ans += 2
return ans
以上是关于LeetCode Algorithm 1925. 统计平方和三元组的数目的主要内容,如果未能解决你的问题,请参考以下文章