【发布时间】:2016-06-01 09:17:58
【问题描述】:
给定一个数组,如何返回总和为偶数的对数?
例如:
a[] = { 2 , -6 , 1, 3, 5 }
在这个数组中,与偶数配对的 nos 是 (2,-6), (1,3) , (1,5), (3,5)
函数应该返回 4,因为有 4 对,如果没有,则返回 -1。
预期时间复杂度 - O(N) 最坏情况 预期空间复杂度 - O(N) 最坏情况
方法一: 蛮力
Start with the first number
Start with second number
assign the sum to a temp variable
check if the temp is even
If it is increment evenPair count
else
increment the second index
这里的时间复杂度是O(N2)
【问题讨论】:
-
如果两个数都是偶数或都是奇数,两个数之和将是一个偶数,因此您应该能够通过简单地计算数组中奇数和偶数的数量以及从有可能的有效对数。如果你想要的只是对的数量,你实际上不需要做所有的加法。
-
但是如果你不添加它们如何找到可能的对呢?
-
@JonathanPotter 您实际上可以将其发布为答案!
-
@aba123 只需按顺序计算奇数和偶数。然后您可以使用著名的数学公式 (n!/2!* (n - 2)!) 来计算总和的数量。例如,如果一个序列中有 n = 4 个偶数,那么将有 6 个偶数和等等。
-
数字是否重复?示例:{1,2,3,2,1}