首页 > 代码库 > 每日一九度之 题目1041:Simple Sorting
每日一九度之 题目1041:Simple Sorting
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:4883
解决:1860
- 题目描述:
You are given an unsorted array of integer numbers. Your task is to sort this array and kill possible duplicated elements occurring in it.
- 输入:
For each case, the first line of the input contains an integer number N representing the quantity of numbers in this array(1≤N≤1000). Next N lines contain N integer numbers(one number per each line) of the original array.
- 输出:
For each case ,outtput file should contain at most N numbers sorted in ascending order. Every number in the output file should occur only once.
- 样例输入:
68 8 7 3 7 7
- 样例输出:
3 7 8
本来想用桶排做的,提交后发现runtime error,应该是数的范围太宽了。
//Asimple#include <iostream>#include <algorithm>#include <cstring>#include <cstdio>#include <cctype>#include <cstdlib>#include <stack>#include <cmath>#include <set>#include <map>#include <string>#include <queue>#include <limits.h>#define INF 0x7fffffffusing namespace std;const int maxn = 1005;typedef long long ll;int n, num;int a[maxn];int main(){ while( ~scanf("%d",&n) ){ memset(a,0,sizeof(a)); while( n -- ){ scanf("%d",&num); a[num] = 1; } int k = 0; for(int i=0; i<maxn; i++){ if( a[i] ){ printf(k==0?"%d":" %d",i); k ++; } } printf("\n"); } return 0;}
正解,用STL中的set正好。简单,明了!!
//Asimple#include <iostream>#include <algorithm>#include <cstring>#include <cstdio>#include <cctype>#include <cstdlib>#include <stack>#include <cmath>#include <map>#include <set>#include <string>#include <queue>#include <limits.h>#define INF 0x7fffffffusing namespace std;const int maxn = 1005;typedef long long ll;int n, num;set<int> s;int main(){ while( ~scanf("%d",&n) ){ s.clear(); while( n -- ){ scanf("%d",&num); s.insert(num); } set<int>::iterator it; for(it=s.begin(); it!=s.end(); it++){ printf(it==s.begin()?"%d":" %d",*it); } printf("\n"); } return 0;}
每日一九度之 题目1041:Simple Sorting
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。