离散化?
概念:元素太大的时候可以理想化。
实现:
- 利用map 《int,int》 等等的 一一对应表明。 就不会出现内存问题了,这个是动态的
- 当然也可以利用 排序去重的方法。
read(n);
for(ri i=1;i<=n;i++)
{
read(val[i]);
t[i]=val[i];
}
sort(t+1,t+1+n);
int tmp=unique(t+1,t+1+n)-t-1;
for(ri i=1;i<=n;i++)
{
val[i]=lower_bound(t+1,t+1+tmp,val[i])-t;
}
for(ri i=1;i<=n;i++)
{
printf("%d ",val[i]);
}
应用:
- 数据太大了,数组装不下,只有这样处理
- 优化空间,方便后续的处理,比如:二维图,坐标很大时候就离散化,
- 利用从小到大的顺序,方便后续的处理