绝对众数
来源:互联网 发布:什么比价软件好 编辑:程序博客网 时间:2024/05/21 15:01
本总结是是个人为防止遗忘而作,不得转载和商用。
定义
给定N个数,称出现次数最多的数为众数;若某众数出现的次数大于N/2,称该众数为绝对众数。
题目
已知给定的N个整数存在绝对众数,以最低的时空复杂度找到该绝对众数。
思想
首先要明白一点:删除数组A中两个不同的数,绝对众数不变,因为:
若两个数中有1个是绝对众数,则剩余的N-2个数中,绝对众数仍然大于(N-2)/2;
若两个数中没有绝对众数,显然不影响绝对众数。
算法描述
记m为候选绝对众数,出现次数为c,初始化为0。
遍历数组A:
若c==0,则m=A[i]
若c≠0且m≠A[i],则同时删掉m和A[i],并c--
若c≠0且m==A[i],则c++
0 0
- 绝对众数
- 算法之绝对众数
- 求绝对众数
- 绝对众数的求法
- 算法学习-绝对众数
- 选择绝对众数
- 求绝对众数
- 【LeetCode】寻找众数(绝对众数、1/k众数)
- 众数
- 众数
- 众数
- 众数
- 众数
- 众数
- 众数
- 众数
- 查找众数
- 众数问题
- effectiveC++之自己实现copy函数的注意事项
- 51nod1769(dirichlet convolution)
- POJ 1837 C - Balance(01背包)(dp)
- 解决canvas getimagedata 跨域问题[已解决]
- struts2详细配置及应用
- 绝对众数
- BSTR类型
- vim学习
- javascript 正则表达式
- SQLCookBook第一章学习日记2
- python的range()函数用法
- 微信公众平台开发(102) 模板消息
- Maven学习总结(八)——使用Maven构建多模块项目
- Java-面向对象(基础编)--包装类