【发布时间】:2020-06-26 15:59:32
【问题描述】:
如果我有一个一维数组 arr[x]
cumulative_arr[x]=cumulative_arr[x-1]+arr[x]
对于二维数组 arr[x][y]
cumulative_arr[x][y]=cumulative_arr[x-1][y]+cumulative_arr[x][y-1]-cumulative_arr[x-1][y-1]+arr[x][y]
如何将这种方法扩展到更大维度的数组?
4D 数组的累积和为:-
cumulative_sum[w][x][y][z] = sum of arr[i][j][k][l] for all i<=w,j<=x,k<=y and l<=z.
我想找到一个 N 维数组的方法。
【问题讨论】:
-
代码是
Python还是C++? -
任何实现/抽象都可以。我标记了两者以确保我不会遇到其他问题。
-
那么问题是关于在大型二维数组中找到任何矩形的总和?
-
不,这是关于找到任何多维数组的累积和。我将编辑帖子以包含更多详细信息
-
那么,你想求
cumsum_arr[i, j, k, ...]和cumsum_arr[i - 1, j, k, ...]、cumsum_arr[i, j - 1, k, ...]、cumsum_arr[i, j, k - 1, ...]等之间的N维递推关系对吗?
标签: c++ python-3.x algorithm data-structures