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

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

假设我们有一个数组nums,和三个不同的整数a、b和c。我们必须找出好三元组的数量。如果以下条件都成立,三元组(nums[i],nums[j],nums[k]) 被认为是好三元组:

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

  • |nums[i] – nums[j]| <= a

  • |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)]

为了解决这个问题,我们将执行以下步骤−

  • res := 0

  • 对于 i 在范围0到nums大小-1,执行以下操作

    • 对于 j 在范围i+1到nums大小-1,执行以下操作
      • 对于 k 在范围j+1到nums大小-1,执行以下操作

      • 如果 |nums[i] – nums[j]| <= a and |nums[j] – nums[k]| <= b and |nums[i] – nums[k]| <= c,则

        • res := res + 1
  • 返回res

更多Python相关文章,请阅读:Python 教程

示例(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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程