Thursday, September 4, 2025
HomeData Modelling & AISummed Area Table – Submatrix Summation

Summed Area Table – Submatrix Summation

Given a matrix of size M x N, there are large number of queries to find submatrix sums. Inputs to queries are left top and right bottom indexes of submatrix whose sum is to find out. 

How to preprocess the matrix so that submatrix sum queries can be performed in O(1) time. 

Example:

tli :  Row number of top left of query submatrix
tlj :  Column number of top left of query submatrix
rbi :  Row number of bottom right of query submatrix
rbj :  Column number of bottom right of query submatrix

Input: mat[M][N] = {{1, 2, 3, 4, 6},
                    {5, 3, 8, 1, 2},
                    {4, 6, 7, 5, 5},
                    {2, 4, 8, 9, 4} };
Query1: tli = 0, tlj = 0, rbi = 1, rbj = 1
Query2: tli = 2, tlj = 2, rbi = 3, rbj = 4
Query3: tli = 1, tlj = 2, rbi = 3, rbj = 3;

Output:
Query1: 11  // Sum between (0, 0) and (1, 1)
Query2: 38  // Sum between (2, 2) and (3, 4)
Query3: 38  // Sum between (1, 2) and (3, 3)

Naive Algorithm: 

We can loop all the queries and calculate each query in O (q*(N*M)) worst case which is too large for a large range of numbers.

// Pseudo code of Naive algorithm.
Arr[][] = input_matrix
For each query:
    Input tli, tlj, rbi, rbj
    sum = 0
    for i from tli to tbi (inclusive):
        for j  from tlj to rbj(inclusive):
            sum += Arr[i][j]
    print(sum) 

Optimized Solution : 

Summed Area Table can reduce this type of query into preprocessing time of O(M*N) and each query will execute in O(1). Summed Area Table is a data structure and algorithm for quickly and efficiently generating the sum of values in a rectangular subset of a grid. 

The value at any point (x, y) in the summed area table is just the sum of all the values above and to the left of (x, y), inclusive :

 qww 

The optimized solution is implemented in below post.

 Implementation of optimized approach This article is contributed by Shubham Saxena. If you like neveropen and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the neveropen main page and help other Geeks. 

Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

RELATED ARTICLES

Most Popular

Dominic
32261 POSTS0 COMMENTS
Milvus
81 POSTS0 COMMENTS
Nango Kala
6626 POSTS0 COMMENTS
Nicole Veronica
11795 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11855 POSTS0 COMMENTS
Shaida Kate Naidoo
6747 POSTS0 COMMENTS
Ted Musemwa
7023 POSTS0 COMMENTS
Thapelo Manthata
6695 POSTS0 COMMENTS
Umr Jansen
6714 POSTS0 COMMENTS