-
题目链接:https://leetcode-cn.com/problems/projection-area-of-3d-shapes/
-
思路:因为题目给的是n * n的网格,感觉还能简单一点
- 俯视:计算存在方块位置的数量up,分两种情况,这个视角与方块数量无关,网格位置上只要有方块,up++
- 侧视:这个位置是求x相同,每个x中y的最大值
- 正视:这个位置是求y相同,每个y中x的最大值
-
class Solution { public: int projectionArea(vector<vector<int>>& grid) { int up = 0; int left = 0; int positive = 0; for(int i = 0; i < grid.size(); i++){ int leftmax = grid[i][0]; for(int j = 0; j < grid[0].size(); j++){ if(grid[i][j] != 0)up++; if(grid[i][j] > leftmax) leftmax = grid[i][j]; } left += leftmax; } for(int j = 0; j < grid[0].size(); j++){ int max = grid[0][j]; for(int i = 0; i < grid.size(); i++){ if(grid[i][j] > max) max = grid[i][j]; } positive += max; } return up + left + positive; } };
833三位形体投影面积
最新推荐文章于 2024-08-22 15:48:46 发布