39-数组排序去重

试题 算法训练 数组排序去重

 
资源限制
时间限制:1.0s   内存限制:512.0MB
问题描述
  输入10个整数组成的序列,要求对其进行升序排序,并去掉重复元素。
输入格式
  10个整数。
输出格式
  多行输出,每行一个元素。
样例输入
2 2 3 3 1 1 5 5 5 5
样例输出
1
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;
}

              
posted @ 2021-03-04 15:47  azuredragonz  阅读(60)  评论(0)    收藏  举报