class Solution {
public:
vector<vector<int>> seePeople(vector<vector<int>>& heights) {
}
};
2282. 在一个网格中可以看到的人数
给定一个 m x n
下标从 0 开始的二维正整数数组 heights
,其中 heights[i][j]
是站在位置 (i, j)
上的人的高度。
站在 (row1, col1)
位置的人可以看到站在 (row2, col2)
位置的人,前提是:
(row2, col2)
的人在 (row1, col1)
的人的右边 或 下面。更正式地说,要么 row1 == row2
时 col1 < col2
,要么 row1 < row2
时 col1 == col2
。返回一个 m x n
的二维整数数组answer
,其中 answer[i][j]
是位于 (i, j)
位置的人可以看到的人数。
示例 1:
输入: heights = [[3,1,4,2,5]] 输出: [[2,1,2,1,0]] 解释: - (0,0) 上的人可以看到 (0,1) 和 (0,2) 的人。 注意,他看不到 (0,4) 上的人,因为 (0,2) 上的人比他高。 - (0,1) 上的人可以看到 (0,2) 上的人。 - (0,2) 上的人可以看到 (0,3) 和 (0,4) 的人。 - (0,3) 上的人可以看到 (0,4) 上的人。 - (0,4) 上的人看不到任何人。
示例 2:
输入: heights = [[5,1],[3,1],[4,1]] 输出: [[3,1],[2,1],[1,0]] 解释: - (0,0) 上的人可以看到 (0,1)、(1,0) 和 (2,0) 的人。 - (0,1) 上的人可以看到 (1,1) 上的人。 - (1,0) 上的人可以看到 (1,1) 和 (2,0) 的人。 - (1,1) 上的人可以看到 (2,1) 上的人。 - (2,0) 上的人可以看到 (2,1) 上的人。 - (2,1) 上的人看不到任何人。
提示:
1 <= heights.length <= 400
1 <= heights[i].length <= 400
1 <= heights[i][j] <= 105
原站题解