给定一个整数列表,非奇偶校验反转是一对具有不同奇偶性的倒置对(一个是偶数,一个是奇数)。
我将设计一个O(n log n)算法,该算法计算非奇偶校验反转的数量。我理解如何计算O(n log n)时间内的反转总数,但我不确定如何仅计算非奇偶校验反转。
有什么建议让我开始吗?
这是一项家庭作业,所以只要在正确的方向上轻推就行了。
提前致谢!
答案 0 :(得分:1)
您需要使用条件表达式来确定该集合是否为非奇偶校验反转(即包含一个偶数和一个奇数整数)。
如果条件为真(确实存在非奇偶校验反转),那么您可以将它们添加到总集或计数中。如果没有,那么继续前进到下一组。
使用此条件语句不会为您的算法添加任何额外的重要复杂性,因为可以使用现有信息来完成。因此,如果您已经有O(n log n)算法,则可以使用此条件对其进行修改,而不会增加其时间复杂度。