You are given an n x n integer matrix grid.
Generate an integer matrix maxLocal of size (n - 2) x (n - 2) such that:
maxLocal[i][j] is equal to the largest value of the 3 x 3 matrix in grid centered around row i + 1 and column j + 1.In other words, we want to find the largest value in every contiguous 3 x 3 matrix in grid.
Return the generated matrix.
Example 1:
Input: grid = [[9,9,8,1],[5,6,2,6],[8,2,6,4],[6,2,2,2]] Output: [[9,9],[8,6]] Explanation: The diagram above shows the original matrix and the generated matrix. Notice that each value in the generated matrix corresponds to the largest value of a contiguous 3 x 3 matrix in grid.
Example 2:
Input: grid = [[1,1,1,1,1],[1,1,1,1,1],[1,1,2,1,1],[1,1,1,1,1],[1,1,1,1,1]] Output: [[2,2,2],[2,2,2],[2,2,2]] Explanation: Notice that the 2 is contained within every contiguous 3 x 3 matrix in grid.
Constraints:
n == grid.length == grid[i].length3 <= n <= 1001 <= grid[i][j] <= 100This approach leverages dynamic programming techniques to break down the problem into overlapping subproblems and solve them using a bottom-up manner. The core idea is to store the results of subproblems to avoid redundant computations, therefore optimizing the solution.
In the C solution, we initialize an array to store the results of subproblems. We iterate through possible states and fill this array based on previous computations, adhering to the defined recurrence relation relevant for the problem.
C++
Java
Python
C#
JavaScript
Time Complexity: O(n)
Space Complexity: O(n)
The greedy approach aims to find a solution by making the most favorable choice at every stage, intending to reach an overall optimal solution. This approach might not always work for all types of problems but can provide simpler solutions where applicable.
In the C implementation, we iterate through each element, making what seems to be the optimal choice without revisiting previous choices. The greedy selection criteria are based on current state conditions.
C++
Java
Python
C#
JavaScript
Time Complexity: O(n)
Space Complexity: O(1)
| Approach | Complexity |
|---|---|
| Dynamic Programming Approach | Time Complexity: O(n) |
| Greedy Approach | Time Complexity: O(n) |
Largest Local Values in a Matrix - Leetcode 2373 - Python • NeetCodeIO • 9,795 views views
Watch 9 more video solutions →Practice Largest Local Values in a Matrix with our built-in code editor and test cases.
Practice on FleetCode