[算法学习no16]离散化处理

什么叫离散化?
比如给你一个数组
下标 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完成了,这就叫离散化处理,把数组边的好看一点,
然后还要记住他的下标是多少,一边我们处理,或者找到他真正的值是多少
这就叫离散化处理!
当然如果有重复的元素,你就按照问题需要,看看到底是去重还是留着。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值