摩尔投票法(解决众数问题)
2021-04-27 10:04:56 2 举报
登录查看完整内容
摩尔投票法(解决众数问题)
作者其他创作
大纲/内容
-1
3
4
2
1
6
major=2,count=1
major=3,count=1
major=2,count=3
major=2,count=2
major=3,count=0
major=2,count=0
给定一个大小为n的数组,找出其中元素个数超过n/2的元素。这个题目可以用摩尔投票法解决。
1、定义一个变量major保存超过n/2的元素,再定义一个变量count保存major出现的次数。2、首先初始化major,让major为数组的第一个元素,count为1。3、从下标为1开始遍历数组,如果当前遍历到的元素等于major则count++,否则count--。4、如果major不等于当前遍历到的元素则count--,如果count==0,则major=当前元素,count=1。5、最终如果count != 0则major为元素超过n/2的元素。否则不存在这个数。
跳过两步
0 条评论
回复 删除
下一页