题目浅析

  • 想查看原题可以点击题目链接

  • 简单地说,就是给一组点,用这些点组成至少有一对水平边的水平梯形,求组合数

思路分享

代码解答(强烈建议自行解答后再看)

  • 参考题解
1
2
3
4
5
6
7
8
9
10
11
12
class Solution:
def countTrapezoids(self, points: List[List[int]]) -> int:
MOD = 1_000_000_007
rec = Counter(p[1] for p in points)
ans = other = 0
for i in rec.values():
com = i*(i-1)//2
ans += other * com
other += com
ans %= MOD
other %= MOD
return ans % MOD