数组中有一个数字出现的次数超过了数组长度的一半,找出这个数
数组中有一个数字出现的次数超过了数组长度的一半,找出这个数
这个算法的时间复杂度是O(n),另外用了两个辅助变量。
k用于临时存储数组中的数据,j用于存储某个数出现的次数。
开始时k存储数组中的第一个数,j为0,如果数组出现的数于k相等,则j加1,否则就减1,如果j为0,就把当前数组中的数赋给k
因为指定的数出现的次数大于数组长度的一半,所有j++与j--相抵消之后,最后j的值是大于等
原创
2017-07-24 08:30:54 ·
1033 阅读 ·
0 评论