求绝对众数
来源:互联网 发布:淘宝客服找不到人 编辑:程序博客网 时间:2024/04/30 11:07
问题:绝对众数指的是,给定N个数字,若某个众数出现次数大于N/2,则称这个众数为绝对众数。
举例: vec = {1,2,3,1,5,6,1,1,1,1},中有10个元素,1占了6个,所以称1为绝对众数
算法:
在N个元素中,删除两个不相同的数字,绝对众数不变, 分类讨论证明:
被删的数字有一个是绝对众数:那么原来是绝对众数的数字的数量为N-1, (N-1)/(N-2)还是大于1/2
被删的数字没有绝对众数:N/(N-2)依然大于1/2
代码:
#include <iostream>#include <vector>using namespace std;int func(vector<int> nums){ int count = 0; //记录当前有可能成为绝对众数的元素the_most的数量 int the_most = nums[0]; for(auto i : nums){ if(count == 0){ the_most = i; }else if(the_most != i){ count--; //相当于同时删除了前一个备选绝对众数和i }else{ //当count!=0 而且 the_most == i 时 count++; } } return the_most;}int main(){ int a[] = {0,0,1,2,3,3,2,2,1,2,7,8,9,6,5}; vector<int> vec(a, a + sizeof(a) / sizeof(a[0])); cout << func(vec);}
阅读全文
0 0
- 求绝对众数
- 求绝对众数
- 绝对众数
- 求众数
- 算法之绝对众数
- 绝对众数的求法
- 算法学习-绝对众数
- 选择绝对众数
- 【LeetCode】寻找众数(绝对众数、1/k众数)
- javascript求众数
- 求众数(c语言)
- Scala Spark 求众数
- 节约内存求众数
- 分治法求众数
- 【算法解题报告】求众数
- C++求众数和重数
- 【Openjudge】求序列中的众数
- 求众数的算法研究
- Spring MVC测试框架详解——服务端测试
- 金明的预算方案(有依赖的dp问题)
- β世界线
- FCF中地址控制域设定值对帧中所包含地址的影响
- 23.读书笔记收获不止Oracle之 组合索引
- 求绝对众数
- 周志华《Machine Learning》学习笔记(8)--贝叶斯分类器
- 深度探索C++对象模型 【第四章1】
- 24.读书笔记收获不止Oracle之 索引的危害
- javaWeb项目,修改css或者js文件后前台显示没效果
- caioj1099: 线段树(元问题)线性结构求极值和修改
- 25.读书笔记收获不止Oracle之 位图索引
- leetcode练习(43)
- HashMap和Hashtable的区别总结