6
在O(n)时间中:在不传递比较的集合中找到最大元素
标题说明了问题。 作为输入,我们可以比较一个元素列表(确定最大)。没有元素可以相等。 关键点: 比较不是传递性的(想像石头剪刀布):这可能是正确的:A> B,B> C,C> A (请注意,这不是有效的输入,因为此处没有有效的答案,我仅描述“非及物比较”) 每个输入数组将保证有一个答案 最大表示元素必须大于其他所有元素 拥有逆属性,即A> B表示B <A 例: Input: [A,B,C,D] A > B, B > C, C > A D > A, D > B, D > C Output: D 我无法找出在O(n)时间内完成此操作的方法,我最好的解决方案是O(n ^ 2)。 因为要确定答案,所以必须将每种元素与其他所有元素进行显式比较,以证明它确实是答案(因为比较不是可传递的),因此我对每种方法都感到困惑。 这排除了堆的使用,排序等。