在 Python 中查找良好三元组数量的程序

假设我们有一个数组 nums 和三个不同的整数 a、b 和 c。我们必须找到好的三胞胎的数量。如果以下条件为真,则称三元组 (nums[i], nums[j], nums[k]) 是一个好的三元组 -

  • 0 <= i < j < k < nums 中的元素数

  • |nums[i] - nums[j]| <= 一个

  • |nums[j] - nums[k]| <= b

  • |nums[i] - nums[k]| <= c

我们必须计算好三胞胎的数量。

因此,如果输入类似于 nums= [5,2,3,3,12,9], a = 7, b = 2, c = 3,那么输出将为 4,因为好的三元组是 [(5, 2,3), (5,2,3), (5,3,3), (2,3,3)]

示例(Python)

让我们看看以下实现以获得更好的理解 -

def solve(nums, a, b, c):
   res = 0
   for i in range(len(nums)):
      for j in range(i+1, len(nums)):
         for k in range(j+1, len(nums)):
            if abs(nums[i] - nums[j]) <= a and abs(nums[j] - nums[k]) <= b and abs(nums[i] - nums[k]) <= c:
               res += 1
   return res

nums= [5,2,3,3,12,9]
a = 7
b = 2
c = 3
print(solve(nums, a, b, c))

输入

[5,2,3,3,12,9], 7, 2 3
输出结果
4