離散化模板

離散化處理

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn=100000;
int a[maxn];
int b[maxn];
int n;
int main()
{
    int m=0;
    cin>>n;//元素個數
    for(int i=1;i<=n;++i)
    {
    scanf("%d",&a[i]);
    b[++m]=a[i];//b[]作爲離散化的數組
    }
    sort(b+1,b+1+m);//將b數組排序,因爲是從b[1]開始存儲的,所以要b+1
    m=unique(b+1,b+1+m)-b-1;//去重操作,返回不同元素的個數
    for(int i=1;i<=n;++i)
    cout<<lower_bound(b+1,b+1+m,a[i])-b<<" ";
   // while(1);
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章