数据处理 —— 差分

简介: 差分及其实现方法

差分


  考虑一个问题,给出 n 个数据,每次给出一个请求(x, y, k),每次将 x 到 y 位置的数据加上 k,要求在 O(n) 的时间内解决。


  • 暴力解法 —— O(n2),明显不行。
  • 线段树或树状数组 —— O(qlogn),q 为请求次数。
  • 差分 —— O(n),不辱使命。


实现方法


  • 开一个于原数组相同大小的数组用于差分。
  • 进行差分操作,比如需要 2~5 位置的元素都加 1,那么我们就将位置 2 标记为 +1,位置 6 标记为 -1,这样操作所有请求(不懂也先照做)。
  • 计算前缀和,然后再来看结果,就是 q 请求后的结果。
  • 再遍历一次加到原数组即可。


相关文章
|
5月前
|
机器学习/深度学习 数据可视化 算法
数据处理方法—— 7 种数据降维操作 !!
数据处理方法—— 7 种数据降维操作 !!
186 0
|
机器学习/深度学习 存储 算法
时序数据特征工程浅析
内容摘要特征工程是指将原始数据标记处理为价值密度更高,更容易解释目标问题的工程化过程,在面向大量原始采集的数据集统计分析,尤其是对于高通量持续采集、且价值密度较低的时序数据更是如此。时序数据特征工程则是指利用有效方法,将原始时序数据转化为带有含义分类标签的序列数据片段或特征数值,例如,我们可以将指定时间窗口序列数据标识为特定异常关联数据,并保留平均、最大、最小值作为该序列的特征值。这样我们就可以围
3170 0
时序数据特征工程浅析
|
5月前
【时间序列分析】——时序分解定理详解
【时间序列分析】——时序分解定理详解
|
4月前
|
数据采集 传感器 移动开发
Karl_AlbrightC# pythonnet(1)_传感器数据清洗算法
/// 读取CSV数据 /// </summary> /// <param name="filePath">文件路径</param> /// <returns>文件中数据集合,都是double类型</returns> static List<double[]> ReadCsvWithCsvHelper(string filePath) { using (var reader = new StreamReader(filePath)) using (var csv = new CsvReader(reader, Cultur
41 13
|
4月前
|
数据处理
大学物理-实验篇——测量误差与数据处理(测量分类、误差、有效数字、逐差法)
大学物理-实验篇——测量误差与数据处理(测量分类、误差、有效数字、逐差法)
138 11
|
5月前
|
数据可视化 语音技术
时间序列分析实战(三):时序因素分解法
时间序列分析实战(三):时序因素分解法
|
10月前
|
算法 数据处理
数据拟合、参数估计、插值等数据处理算法
数据拟合、参数估计、插值等数据处理算法
126 0
数据拟合、参数估计、插值等数据处理算法
|
5月前
|
数据可视化 数据挖掘 Python
【数据分析与可视化】时间序列重采样、降采样、升采样及平稳性检验详解(图文解释 附源码)
【数据分析与可视化】时间序列重采样、降采样、升采样及平稳性检验详解(图文解释 附源码)
258 0
|
11月前
|
数据挖掘
专题五数据分析与多项式计算-1
专题五数据分析与多项式计算
47 0
|
11月前
|
安全 数据挖掘
专题五数据分析与多项式计算-2
专题五数据分析与多项式计算
71 0