什么叫离散化?
比如给你一个数组
下标 1 2 3
数值 1 5000 2
需要你进行一系列大小比较有关的操作,那么他们的实际大小就不重要了
比如让你求出数组中比1大的元素个数,你知道有两个
那我把5000换成 3,是不是还有2个?
这个数组中5000就是最大的,如果我的操作不涉及求值,只用比较大小,就像我刚才说的,求出一个数组中比1大的元素个数
那这个5000换成3 ,换成4 或者把下标为3的那个2换成3,换成4,都是不会改变的。
而有的操作需要靠数值大小来确定地址,如果你的数值太大,那么这个空间就会造成很大的浪费,所以你就要离散化!
离散化是啥意思
我给你操作一下
1.排序
新下标 1 2 3
原下标 1 3 2
数值 1 2 5000
2.
新下标 1 2 3
原下标 1 3 2
数值 1 2 3
ok完成了,这就叫离散化处理,把数组边的好看一点,
然后还要记住他的下标是多少,一边我们处理,或者找到他真正的值是多少
这就叫离散化处理!
当然如果有重复的元素,你就按照问题需要,看看到底是去重还是留着。
[算法学习no16]离散化处理
最新推荐文章于 2023-12-22 20:59:42 发布