题解 | #数组中超过一般的数字#
数组中出现次数超过一半的数字
http://www.nowcoder.com/practice/e8a1b01a2df14cb2b228b30ee6a92163
public class Solution { public int MoreThanHalfNum_Solution(int [] array) { //初始化 int num = array[0] ;//候选人 int tik = 1 ;//票数 for(int i = 1 ; i < array.length ;) { if(array[i] == num) {//投票 tik ++ ; i ++ ; } else { tik -- ;//减票 if(tik == 0) {//票为0 if(i+1 < array.length) {//还有候选人 num = array[i+1] ;//换候选人 tik = 1 ;//初始票 i+=2 ;//下一个投票起始处 } else { return -1 ;//无候选人了,返回-1 } } else {//票不为0,继续投票 i++ ; } } } return num ; } }
一个菜鸟的算法刷题记录 文章被收录于专栏
分享一个菜鸟的成长记录