Leetcode: Range Sum Query 2D - Immutable


 

This question is common at Facebook, Google, Lyft, Microsoft, Amazon, and Cruz Automation.

Given a 2D matrix matrix, find the sum of the elements inside the rectangle defined by its upper left corner row1, col1 and lower right corner row2, col2. We want to initialize an object with the integer matrix, variable matrix, called NumMatrix(int[][] matrix) and a sumRegion function int sumRegion(int row1, int col1, int row2, int col2) which returns the sum of the elements of the matrix array inside of the rectangle defined by the upper left corner and lower right corner. 

Here's an example: 

Input

["NumMatrix", "sumRegion", "sumRegion", "sumRegion"]

[[[[3, 0, 1, 4, 2], [5, 6, 3, 2, 1], [1, 2, 0, 1, 5], [4, 1, 0, 1, 7], [1, 0, 3, 0, 5]]], [2, 1, 4, 3], [1, 1, 2, 2], [1, 2, 2, 4]]

Output

[null, 8, 11, 12]


Explanation

NumMatrix numMatrix = new NumMatrix([[3, 0, 1, 4, 2], [5, 6, 3, 2, 1], [1, 2, 0, 1, 5], [4, 1, 0, 1, 7], [1, 0, 3, 0, 5]]);

numMatrix.sumRegion(2, 1, 4, 3); // return 8 (i.e sum of the red rectangle).

numMatrix.sumRegion(1, 1, 2, 2); // return 11 (i.e sum of the green rectangle).

numMatrix.sumRegion(1, 2, 2, 4); // return 12 (i.e sum of the blue rectangle).



Comments

Popular Posts