本文主要是介绍1041 Be Unique (20 point(s)),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1041 Be Unique (20 point(s))
去重。
HASH 打点 然后sort 排序
AC代码
#include <vector>
#include <iostream>
#include <algorithm>
#include <map>
using namespace std;
struct node{int num;int cnt;int idx;
};
map<int,int> M;
vector<node> Q;
map<int,int>::iterator it;bool cmp(const node &a,const node &b){if(a.cnt!=b.cnt){return a.cnt<b.cnt;}else{ return a.idx<b.idx;}
}int main(){int cnt;cin>>cnt;int idx=0;for(int i = 0; i < cnt; i++){int num;cin>>num;it =M.find(num);if(it!=M.end()){Q[M[num]].cnt++;}else{node newnode;newnode.num=num;newnode.cnt =1;newnode.idx =idx;Q.push_back(newnode);M.insert(pair<int,int>(num,idx++));}}sort(Q.begin(),Q.end(),cmp);if(Q.size()==0||Q[0].cnt!=1){cout<<"None";}else{cout<<Q[0].num;}return 0;
}
这篇关于1041 Be Unique (20 point(s))的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!