import java.util.Scanner;
public class Main{
public static void main(String []args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int []arr = new int [n];
for(int i = 0; i < n; i++){
arr[i] = sc.nextInt();
}
int condiate = Elect(arr);
System.out.println(condiate);
}
public static int Elect(int []arr){
int condiate = arr[0];
int count = 1;
for(int i = 1; i < arr.length; i++){
if(arr[i] == condiate){
count++;
}else{
count--;
if(count == 0){
condiate = arr[i];
count = 1;
}
}
}
return condiate;
}
}
这题采用摩尔投票法来写代码,首先使候选人定为arr[0],在开始遍历数组,如果在遍历过程中count变成0,就换一个候选人,再重新遍历,直到找出为止。摩尔投票法核心思想是:“抵消”。