public class Solution {
public int MoreThanHalfNum_Solution(int [] array) {
// 第一个打擂台的人
int voted = 1;
int result = array[0];
for (int i = 1; i < array.length; i++) {
if(array[i] == result) {// 如果是同盟战力值++
voted++;
}else{
// 如果不是同盟战力值--
voted--;
if(voted==0){ // 战力值耗尽退出擂台,重置擂主
voted=1;
result = array[i];
}
}
}
// 最终在台上的说明战力值比较屌的人
return result;
}
}
解题思想:联想打擂台,站在最后的就是要找的次数最多的。

京公网安备 11010502036488号