标签:输入 div 排序 需要 iterator map insert while scan
题目:
输入n个整数,输出其中最小的k个。
5 2 1 3 5 7 2
1 2
代码:
#include <iostream> #include <map> #include <set> using namespace std; /* 这题以空间换时间,将set和map结合的很好。当需要自动排序,又不想去重时,希望你想到这个例子 */ int main(){ int i, n, k, t; set<int> si; map<int, int> mp; while(scanf("%d %d", &n, &k) != EOF){ si.clear(); mp.clear(); //注意初始化啦!!! for(i=0; i<n; i++){ scanf("%d", &t); si.insert(t); mp[t]++; } for(set<int>::iterator it=si.begin(); k>0 && it!=si.end(); ){ printf("%d ", *it); k--; mp[*it]--; if(mp[*it]==0) it++; } printf("\n"); } return 0; }
标签:输入 div 排序 需要 iterator map insert while scan
原文地址:https://www.cnblogs.com/heyour/p/12458528.html