离散化模板题 II ——重复元素离散化后的数字不相同

离散化模板题 II ——重复元素离散化后的数字不相同

题目描述

现有数列A1A2An,数列中可能有重复元素。 
现在要求输出该数列的离散化数列,重复元素离散化后的数字不相同。

输入

第一行,一个整数 n。 
第二行,n 个整数整数 A1, A2, An

输出

一行,包括 n 整数。表示数列对应的离散化数列,重复元素离散化后的数字不相同。

样例输入

6
1 23424 242 65466 242 0

样例输出

1 4 2 5 3 0

代码:

#include <bits/stdc++.h>
using namespace std;
struct node{
    int num,id;
};
bool cmp( node a,node b ){
    return a.num<b.num;
}
int main(){
    int n;
    cin>>n;
    node *arr = new node[n+1];
    for (int i = 0; i < n; i++){
        cin>>arr[i].num;
        arr[i].id=i;
    }
    sort(arr,arr+n,cmp);
    for (int i = 0; i < n; i++){
        arr[arr[i].id].num=i;
    }
    for (int i = 0; i < n; i++){
        cout<<arr[i].num<<" ";
    }
}

 

因上求缘,果上努力~~~~ 作者:每天卷学习,转载请注明原文链接:https://www.cnblogs.com/BlairGrowing/p/14073545.html

原文地址:https://www.cnblogs.com/BlairGrowing/p/14073545.html