原题链接:
https://leetcode.cn/problems/largest-local-values-in-a-matrix/
解题思路:
- 原题需要生成矩阵
maxLocal
:maxLocal[i][j]
等于grid
中以i + 1
行和j + 1
列为中心的 3 x 3 矩阵中的 最大值 。 - 这句话的意思等同于
maxLocal[i][j]
等于grid
中以i
行和j
列为左上角的 3 x 3 矩阵中的 最大值 。
/*** @param {number[][]} grid* @return {number[][]}*/
var largestLocal = function (grid) {const n = grid.length // 缓存矩阵的长宽// 创建存储结果的数组let result = Array.from({ length: n - 2 }, () => new Array(n - 2).fill(0))// 创建大小为(n - 2) x (n - 2) 的整数矩阵for (let i = 0; i < n - 2; i++) {for (let j = 0; j < n - 2; j++) {let max = -Infinity // 缓存最大值// 搜索以i和j为左上角,长宽为3的矩阵中的最大值for (let k = 0; k < 3; k++) {for (let l = 0; l < 3; l++) {max = Math.max(max, grid[i + k][j + l])}}// 将最大值存储到结果矩阵相应位置result[i][j] = max}}return result
}