矩阵中的局部最大值【LC2373】
给你一个大小为 n x n
的整数矩阵 grid
。
生成一个大小为 (n - 2) x (n - 2)
的整数矩阵 maxLocal
,并满足
maxLocal[i][j]等于 grid 中以 i + 1 行和 j + 1 列为中心的 3 x 3 矩阵中的 最大值 。
换句话说,我们希望找出 grid 中每个 3 x 3 矩阵中的最大值。
返回生成的矩阵
- 思路:
枚举每个3*3的小矩阵,记录最大值,返回结果 - 实现
class Solution { public int[][] largestLocal(int[][] grid) { int n = grid.length; int[][] res = new int[n - 2][n - 2]; for (int i = 0; i < n - 2; i++){ for (int j = 0; j < n - 2; j++){ int max = 0; for (int a = i; a <= i + 2; a++){ for (int b = j; b <= j + 2; b++){ max = Math.max(grid[a][b], max); } } res[i][j] = max; } } return res; } }
复杂度
- 时间复杂度:O(n2∗C)
- 空间复杂度:O(1)