矩阵中的局部最大值【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 ( n 2 ∗ C ) O(n^2*C) O(n2∗C)
- 空间复杂度: O ( 1 ) O(1) O(1)
- 复杂度