📅  最后修改于: 2023-12-03 15:12:01.890000             🧑  作者: Mango
有一个整数数组,计算其中包含至少一个偶数值的数组当中的对。
需要遍历数组中的每一个元素,并判断其是否为偶数值,若为偶数则将其存储在一个新的数组中,最后计算新数组中两两元素之和,即为所求的结果。
def count_pairs_with_even_numbers(arr):
even_nums = [num for num in arr if num % 2 == 0]
count = 0
for i in range(len(even_nums)):
for j in range(i+1, len(even_nums)):
count += 1
return count
arr1 = [1, 2, 3, 4, 5]
arr2 = [1, 3, 5, 7, 9]
arr3 = [2, 4, 6, 8, 10]
print(count_pairs_with_even_numbers(arr1)) # 1
print(count_pairs_with_even_numbers(arr2)) # 0
print(count_pairs_with_even_numbers(arr3)) # 10
算法需要遍历整个数组,时间复杂度为 $O(n)$,新数组中元素数量最多为原数组长度的一半,因此计算两两元素之和的时间复杂度为 $O(\frac{n^2}{4})$,加起来总体时间复杂度为 $O(n^2)$。