c++离散化处理大范围和重复数据-阿里云开发者社区

开发者社区> 优惠券发放> 正文

c++离散化处理大范围和重复数据

简介:
+关注继续查看

c++离散化处理大范围和重复数据

关于离散化

有些新手可能会问:离散化是什么?离散化就是将无限空间中有限的个体映射到有限的空间里去。

上面的定义肯定会有人看不懂(其实我刚开始学的时候也看不懂)

用我自己的话来说,就是在不改变数据的相对大小的条件下,对数据进行相应的压缩

可能还是有人看不懂,没关系,我们来看一个例子,顺便来讲一下离散化的基本操作:

现有一个数组:1,100,2367,562,364737,19,1974832947,100,562,2367

如果按照正常的方法,该开1974832947的空间,但是经过离散化后,就不需要

那么step 1:排序

用上面的例子来说,就是将上面的数据排序并去重,得到下面这组数据:

1,19,100,100,562,562,2367,2367,364737,1974832947

然后step 2:通过unique去重使大小与下标对应,并得到去重后的长度,得到下面这组数据:

1,19,100,562,2367,364737,1974832947

接着step 3:通过lower_bound算出离散化后的排列,得到下面这组数据:

1,2,3,4,5,6,7

那么这里就很尴尬了,这组数据无法应用于初始数据

所以在开始,我们多定义1个数组,来记录初始情况下的数据,再用step 3与其进行对应。

最终得到答案:1,3,5,4,6,2,7,3,4,5

下面给出模板:

 View Code
原文地址https://www.cnblogs.com/jasonownblog/p/12906712.html

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
python应用领域分析
python应用领域分析
6 0
安卓平板体验Java开发,还能白嫖一年阿里无影云!真香
阿里无影云早有耳闻,前两天看朋友发体验照片,可能是程序员天生爱折腾的特性又发挥作用了,自己也没能忍住,赶快下载体验了一把,没想到“很香”。我体验了浏览器端、Windows 客户端和安卓平板端,下面就来聊聊使用的过程和使用体验。内含一年免费无影云的白嫖方法,千万别错过哦~
43 0
简单实用的redis分布式锁
简单实用的redis分布式锁
4 0
Linux 基本操作 | 学习笔记
快速学习 Linux 基本操作。
11 0
使用 Go 语言编写的恶意软件激增 2000%
  近日,网络安全公司 Intezer 发布了 2022 年基于 Go 语言恶意软件的报告。报告指出:恶意软件的开发者已经从 C 和 C++ 逐渐转向 Go 语言,自 2017 年以来,基于 Go 语言的恶意软件数量呈现爆发式增长,增幅超过了 2000%。   自从 2012 年发现了第一个使用 Go 语言编写的恶意软件之后,Go 语言就在恶意软件领域渐渐流行起来了。2019 年 7 月,Palo Alto Networks 发布了一份使用 Go 语言编写的恶意软件分析报告。报告发现,2019 年以前使用 Go 语言编写恶意软件是一件罕见的事情,但到了 2019 年,这种情况每天都会发生,2
6 0
ECS使用体验
云服务器(ECS),是一种简单高效,处理能力可以弹性伸缩的计算服务。
7 0
Java classloader详解
Java程序并不是一个可执行文件,而是由很多的Java类组成,其运行是由JVM来控制的。而JVM从内存中查找到类,而真正将类加载进内存的就是ClassLoader,可以说我们每天都在接触ClassLoader,但是很多时候我们没有明白其执行的流程和原理。
8 0
QT和MFC的优缺点比较
QT和MFC的优缺点比较
5 0
初始ECS
物联网学习的硬性需求,我们需要搭建一台自己的服务器,在不断查找资料和方法后,获知阿里云ECS云服务器有学生体验资格,继而我将利用ECS云服务器搭建一个自己的EMQX服务器端。
18 0
+关注
优惠券发放
阿里云优惠码阿里云推荐券bieryun.com
452
文章
25
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载