首页 > 编程语言 >【算法】数组的前缀和 Prefix Sum

【算法】数组的前缀和 Prefix Sum

时间:2023-02-19 14:22:45浏览次数:47  
标签:前缀 Sum a3 a1 Prefix a2 a4

算法中有前缀和这样一种很好的数据结构,它能极大地降低区间查询的时间复杂度

前缀和 - Prefix Sum 

它是这样的,假如有这样一个数组(序列),  A = [a1, a2, a3, a4, a5, a6, a7, a8]  ==> 那么它的前缀和 Prefix Sum数组应该是如下:  prefixSum = [sum1, sum2, sum3, sum4, sum5, sum6, sum7, sum8]

它的计算方式是这样的:  sum1 = a1;

                                          sum 2 = a1 + a2 = sum1 + a2

                                          sum3 = a1 + a2 + a3 = sum2 + a3

                                          sum4 = a1 + a2 + a3 + a4 = sum3 + a4

                                          sum5 = a1 + a2 + a3 + a4 + a5 = sum4 + a5

标签:前缀,Sum,a3,a1,Prefix,a2,a4
From: https://www.cnblogs.com/wphl-27/p/17134695.html

相关文章

  • 第二章 前缀和、差分和离散化
    整体和部分的性质至关重要。通常辅助其余算法。前缀和与二维前缀和整体可分为若干部分。B3612求区间和模板。P1719最大加权矩形枚举左右边界,用每行的区间和跑最大......
  • 计蒜客 - 天上的星星 (二维前缀和)
    在一个星光摧残的夜晚,蒜头君一颗一颗的数这天上的星星。蒜头君给在天上巧妙的画了一个直角坐标系,让所有的星星都分布在第一象。天上有 nn 颗星星,他能知道每一颗星星的坐标......
  • 黑名单查询:前缀树
    引入我现在有一份黑名单数据,里面有10000条域名,现在需要编写一个算法,快速判断一个域名在不在这个黑名单里,怎么设计这个算法?字典树or前缀树前缀树是N叉树的一种根节点......
  • 【题解】CF280D k-Maximum Subsequence Sum
    题目分析:(可能是刚做完毒瘤Ynoi的原因,看这个4k的线段树感觉好简单)可以看一下这个查询的操作,最多\(k\)个不重线段的和的最大值,这个东西大概是网络流的经典题吧。具......
  • 前缀树
    1.简介字典树也称为前缀树、单词查找树。其基本性质如下:根节点不包含字符,除根节点外每一个节点都只包含一个字符从根节点到某一结点,路径上经过的字符连接起来,为该节点......
  • #yyds干货盘点# LeetCode面试题:最长公共前缀
    1.简述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。 示例1:输入:strs=["flower","flow","flight"]输出:"fl"示例2:输入:strs=["......
  • 208. Implement Trie (Prefix Tree)[Medium]
    208.ImplementTrie(PrefixTree)Atrie(pronouncedas"try")orprefixtreeisatreedatastructureusedtoefficientlystoreandretrievekeysinadataset......
  • 【算法】前缀和
    前缀和对于数组nums,定义它的前缀和\(s[0]=0\),\(s[i+1]=\sum_{j=0}^{i}nums[j]\)。通过前缀和,可以把子数组的和转换成两个前缀和之差,即\[\sum_{j=left}^{right}nums[j......
  • 【转载】go.sum中特殊hash如何计算
    Golang为了依赖的安全考虑,在go.mod的基础上引入了go.sum,go.sum文件的作用主要是记录项目依赖的hash值,防止被人修改。在分析具体项目的go.sum文件后可以发现go.sum中不仅......
  • acwing 前缀和练习
    原题链接题解#include"iostream"#include"vector"usingnamespacestd;intmain(){intn,m,tmp,l,r;cin>>n>>m;vector<int>num;num.push_back......