从数组

时间:2018-06-16 14:32:53

标签: algorithm

leader是一个数字,它比数组元素的HALF更多。如果数组中的两个连续部分具有该领导者(即领导者出现respective部分中其他元素的一半以上),则将定义Equi-leader。由于该部分可以变化,因此阵列可以具有多个Equi-leader。说,我找到一个数组的领导者x,现在我想找到等级领导者的数量。

如果一个部分和连续部分x比其他元素(x>该部分的non_X)更多,是否意味着在这两个部分x中发生了超过一半的其他元素?请记住,x_Total > Array_Length/2

一个部分是一个子阵列,比如说,取S的索引中的元素。它创建了[0,1,.....,S]和[S + 1,S + 2,...的2个连续子阵列。 .... N-1]我们需要两个部门的领导者。

我知道这是真的,但是,如何证明这一点?不寻找代码实现。

1 个答案:

答案 0 :(得分:1)

仍然不确定我是否理解这个问题,但无论如何。

让数组的长度为N. 假设第一部分(子部分)具有长度L,因此第二部分具有长度N-L。 设C 1 为第一部分中值X的数量,C 2 为第二部分中值X的数量。

根据equi-leader的定义(希望我说得对),我们有C 1 > L / 2和C 2 > (N-L)/ 2。 将它们加在一起,我们有C 1 + C 2 > N / 2。

因此,任何等级领导者也是整个阵列的领导者。 由于最多只能有一位领导者,所有等级领导者必然等于这一领导者。