在 Python 中查找良好三元组数量的程序
假设我们有一个数组nums和三个不同的整数a、b和c。我们必须找到好的三胞胎的数量。如果以下条件为真,则称三元组(nums[i],nums[j],nums[k])是一个好的三元组-
0<=i
|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