P215. 不可变矩阵的部分和查询

leetcode 304 lintcode 665 数组 动态规划 讨论

温馨提示:您没有权限查看当前视频。 立即购买观看视频

描述

这个题目说的是,给你一个二维整数矩阵,你要设计一个类,可以高效地查询任意子矩阵内的数字和。其中,子矩阵由它左上角坐标 (row1, col1) 和右下角坐标 (row2, col2) 所确定。

注意,你可以假设矩阵一旦给你,就不会发生改变。并且给你的左上角坐标和右下角坐标一定是合法的。另外,求子矩阵内数字和的函数会被频繁调用

比如说,给你的矩阵 a 是:

1, 0, 2, 4
4, 2, 3, 7
3, 1, 4, 2
0, 4, 1, 4

假设子矩阵求和函数是 f,那么 f(1, 1, 2, 2) 表示的就是左上角坐标为 (1, 1),右下角坐标为 (2, 2) 所形成的子矩阵元素和。

这个子矩阵包含的数字是:2, 3, 1, 4,因此有:

f(1, 1, 2, 2) = 2+3+1+4 = 10

相关视频:不可变数组的区间和查询

关于 AlgoCasts

AlgoCasts 旨在用心做好每一个算法讲解视频。每个视频包含两个部分:题目的剖析讲解以及编码,力求在讲解清楚到位的基础上,尽可能地保持视频精简短小,让大家可以在碎片时间里进行学习,并收获这些算法题背后的思想与乐趣。