给你一个 n x m 的整数矩阵 matrix ,所有元素均为非负整数。
一个 非零 单元格 (row, col) 会按如下方式检查其附近的单元格:
x = matrix[row][col] 。(row, col) 的 x 行和 x 列范围内的每个单元格。x 的 单元格。如果单元格 (row, col) 是 非零 的,并且所有考虑的单元格中没有一个值 大于 x ,那么该单元格就是一个 局部最大值 。
返回一个整数,表示 matrix 中 局部最大值 的数量。
示例 1:
输入: matrix = [[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,2,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]]
输出: 1
解释:
(3, 3) ,x = matrix[3][3] = 2 。(3, 3) 的 x 行和 x 列范围内被考虑的单元格。x = 2 的四个单元格被忽略。(3, 3) 是一个局部最大值。示例 2:
输入: matrix = [[1,2],[3,4]]
输出: 1
解释:
只有值为 4 的单元格是局部最大值。其他每个非零单元格都考虑到了一个具有更大值的单元格。
示例 3:
输入: matrix = [[1,0,1],[0,1,0],[1,0,1]]
输出: 5
解释:
示例 4:
输入: matrix = [[1,1],[1,1]]
输出: 4
解释:
所有单元格都具有相同的值。因此,没有任何一个单元格会考虑到具有更大值的其他单元格,所以所有 4 个单元格都是局部最大值。
提示:
1 <= n == matrix.length <= 2001 <= m == matrix[i].length <= 2000 <= matrix[i][j] <= 200