39-数组排序去重
试题 算法训练 数组排序去重
资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
输入10个整数组成的序列,要求对其进行升序排序,并去掉重复元素。
输入格式
10个整数。
输出格式
多行输出,每行一个元素。
样例输入
2 2 3 3 1 1 5 5 5 5
样例输出
1
2
3
5
2
3
5
解题思路:
1.先对接受数据的数组排序(如 数组 a),
2.然后用一个新的数组(如 数组 b) 接收去重且排好序的数组:
1.将排好序的数组的第一个元素复制给数组b的第一个元素,
2.然后对a数组进行遍历,
a.若大于数组b中的元素,则将数组的元素复制到b中,
b.若等于数组b中的元素,则不作操作,只将数组a的索引号++,既可,
3.得到目标数组
具体代码实现:
#include<iostream>
#include<algorithm>
using namespace std;
int main() {
int a[10] = { 0 }, b[10] = { 0 };
for (int i = 0; i < 10; i++) {
cin >> a[i];
}
sort(a,a+10);
b[0] = a[0];
int j = 0;
for (int i = 1; i < sizeof(a)/sizeof(int); i++) {
if (a[i] > b[j]) {
b[++j] = a[i];
}
}
for (int k = 0; k <= j; k++) {
cout << b[k] << "\n";
}
return 0;
}

浙公网安备 33010602011771号