当前位置: 代码迷 >> 综合 >> 1314. Matrix Block Sum 详细解答
  详细解决方案

1314. Matrix Block Sum 详细解答

热度:89   发布时间:2024-02-24 12:04:07.0

1314. Matrix Block Sum 详细解答

在这里插入图片描述
解法1: Brute Force
题目理解:求出距离某个元素为K的所有元素的累加和。
比如:[[1, 2, 3],
??? [4, 5, 6],
??? [7, 8, 9]]

元素4,若 k=1。
距离元素4为1的元素包括1, 2, 5, 7, 8, 最后得到的累加和为 1+2+4+5+7+8 = 27.
所以答案中在元素4的位置变为了27

暴力求解的方式很简单,在遍历到每一个元素时,直接求出距离为k的所有元素累加和即可。

代码如下:
在这里插入图片描述
问题:复杂度太高,执行太耗时,不推荐。

解法2:累加求和
在这里可以采用左上角累加求和的方式来进行解答
比如:[[1, 2, 3],
??? [4, 5, 6],
??? [7, 8, 9]]

通过左上角求和即可得到:[ [1, 3, 6],
????????????[5 12, 21],
????????????[12, 27, 45]]

然后通过以下方式进行求和:在这里插入图片描述

举例说明:
在这里插入图片描述
在这里插入图片描述
这样即可求解。
注明图片来源:https://leetcode.com/problems/matrix-block-sum/discuss/482730/Python-O(-m*n-)-sol.-by-integral-image-technique.-90%2B-with-Explanation

代码如下:
在这里插入图片描述

  相关解决方案