题目浅析

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

  • 简单地说,题目规定了一种公平数对,也就是两个数字之和在一个数值区间中的情况,要求一个数组中有多少个公平数对。

思路分享

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

  • 参考题解
1
2
3
4
5
6
7
8
9
class Solution:
def countFairPairs(self, nums: List[int], lower: int, upper: int) -> int:
nums.sort()
ans = 0
for i, x in enumerate(nums):
r = bisect_right(nums, upper - x, 0, i)
l = bisect_left(nums, lower - x, 0, i)
ans += r-l
return ans