PAT-1054
来源:互联网 发布:淘宝购车靠谱吗 编辑:程序博客网 时间:2024/06/03 20:41
title:找出超过半数的元素
1.该题求出现次数超过一半的元素,故采用moore voting算法,moore投票法
2.遇到不同的元素,如果出现次数为0,更跟换成当前元素,如果次数不为0则-1,
3.遇到相同元素,出现次数相加
4.最终记录的元素就是所求元素
//moor voting#include <iostream>#include <cstdio>using namespace std;int main(){ int n,m; int tmpnum,count,num=-1; scanf("%d%d",&n,&m); for(int i=0;i<m;i++) for(int j=0;j<n;j++) { scanf("%d",&tmpnum); if(tmpnum!=num) { if(count==0) num=tmpnum; else count--; } else count++; } cout<<num<<endl; return 0;}
map 做法:
/*用C++读数据会超时,要用C读。*/#include<iostream>#include<stdio.h>#include<map>using namespace std;int main(){int i,j,n,m,num;map<int,int>mp;map<int,int>::iterator it;cin>>n>>m;for(i=0;i<m;i++){for(j=0;j<n;j++){scanf("%d",&num);mp[num]++;}}for(it=mp.begin();it!=mp.end();it++){if(it->second>(n*m/2)){cout<<it->first<<endl;break;}}return 0;}
0 0
- pat 1054
- pat 1054
- PAT 1054
- PAT-1054
- pat 1054
- PAT 1054
- PAT [A] 1054
- pat advanced 1054
- PAT(甲级)1054
- 浙大PAT甲级 1054
- PAT-乙级-1054
- PAT乙级1054
- pat-bl-1054
- PAT甲级1054
- PAT 1054求平均值
- PAT basic 1054
- pat
- 【PAT】
- bootstrap响应式布局学习日记
- linux解压命令
- 河南第六届ACM省赛(Card Trick)
- hibernate异常(2)
- VIM 配置
- PAT-1054
- C储存类,链接和内存管理学习总结和心得
- Docker问题
- socket编程 -- 基于TCP协议的C/S通信模型及实现
- leetcode:Longest Valid Parentheses
- 【高斯消元】[JSOI2008][HYSBZ/BZOJ1013]球形空间产生器sphere
- Eclipse快捷键
- **LeetCode 30. Substring with Concatenation of All Words
- Maven: 每次更新Maven Project ,JAVA 版本都变为1.5