考虑以下带有元素的数组:
0 5 1 5 2 5
算法不会返回5作为多数元素,但在第一遍结束时将2视为多数元素,计数为0.
这是伪代码:
num1 = array[0], count = 0;
for(int n : array){
if (n == num1)
count++;
else if(count == 0)
num1 = n;
count = 1;
else
count--;
}
在此迭代结束时,num1将包含元素“2”,count将为0。 我该如何使算法工作以返回元素'5'?