找出数组中出现次数超过一半的数字

根据数组的特点找出:O(n)算法
数组中有一个数字出现的次数超过数组长度的一半,即这个数字出现的次数比其他所有数字出现的次数的和还要多。遍历数组的时候保存两个值:数组中元素的值、次数。在遍历下一个数字时,如果下一个数字和之前保存的数字相同,则次数加1;如果下一个数字和之前保存的数字不相同,则次数减1。如果次数为0,则保存下一个数字,并把次数设为1。由于要找的数字出现的次数比其他所有数字出现的次数之和还要多,则最后一次把次数设为1时对应的数字就是要找的数字。
找出数组中出现次数超过一半的数字

原文链接:https://blog.csdn.net/qiana_/article/details/79176936