思路
1.将原有数组排序。
2.去重 。
(3)特殊操作,如加点
4.用数组下标给原数据赋值。
步骤实现
1.排序
sort(ans,ans+cnt) ;
2.去重
ll m = unique(ans,ans+cnt)-ans ;
ll tot = m ;//方便(3)的循环
(3)特殊操作,如加点。然后要再排序
for(ll i = 1 ; i < m ; i++)
{
if(ans[i]-ans[i-1] > 1) ans[tot++] = ans[i-1]+1 ;
}
sort(ans,ans+tot) ;
4.存点
for(int i = 0 ; i < tot ; i++)
{
ans[i] = i+1 ;
}