[Algorithm] 前缀和
Posted immjc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Algorithm] 前缀和相关的知识,希望对你有一定的参考价值。
一维前缀和
主要用于在O(1)时间内找出A[i]+A[i+1]+...+A[j]的和
原理:
用sum[i]表示A[1]+A[2]+...+A[i],则sum[0] = 0, sum[1] = A[1], sum[2] = A[1]+A[2]; sum[3]=A[1]+A[2]+A[3];
则A[i]+A[i+1]+A[i+2]+...+A[j] = sum[j]-sum[i-1]
二维前缀和
对于一个矩阵,在O(1)时间内求出子矩阵A[x2-x1][y2-y1]的和。
原理:
用sum[i][j]表示子矩阵中A[i-1][j-1]的和。sum[0][0] = 0, sum[1][1] = A[1][1]+sum[0][1]+sum[1][0]-sum[0][0]
则,sum[i][j] = A[i][j]+sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]
以上是关于[Algorithm] 前缀和的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode Algorithm 2000. 反转单词前缀
LeetCode Algorithm 2000. 反转单词前缀
2018 UESTC Training for Search Algorithm & String