1. 程式人生 > >leetcode 892. 三維形體的表面積

leetcode 892. 三維形體的表面積

輸出 size ace pro 描述 pre bubuko grid str

題目描述:

N * N 的網格上,我們放置一些 1 * 1 * 1 的立方體。

每個值 v = grid[i][j] 表示 v 個正方體疊放在單元格 (i, j) 上。

返回最終形體的表面積。

示例 1:

輸入:[[2]]
輸出:10

示例 2:

輸入:[[1,2],[3,4]]
輸出:34

示例 3:

輸入:[[1,0],[0,2]]
輸出:16

示例 4:

輸入:[[1,1,1],[1,0,1],[1,1,1]]
輸出:32

示例 5:

輸入:[[2,2,2],[2,1,2],[2,2,2]]
輸出:46

最開始!!!!題目半天沒看懂......捂臉..

技術分享圖片

如上圖:輸入為:【【2,1】,【1,0】】,求這四個立方體組成的整體的表面積,立方體個數*6-接觸面*2=4*6-3*2=18

class Solution {
public:
    int surfaceArea(vector<vector<int>>& grid) {
        int i,j,number;
        int sum=0,num = 0;
        for(i=0;i<grid.size();i++)
        {
            for(j=0;j<grid[0].size();j++)
            {
                
if(grid[i][j]!=0) { sum = sum+grid[i][j]; } if(grid[i][j]>1) { num = num+grid[i][j]-1; } if(i+1 < grid[0].size() && grid[i+1][j] != 0) // { num
= num+min(grid[i][j],grid[i+1][j]); } if(j+1 < grid.size() && grid[i][j+1] != 0) // { num = num+min(grid[i][j],grid[i][j+1]); } } } number = sum*6-num*2; return number; } };

題目鏈接:https://leetcode-cn.com/problems/surface-area-of-3d-shapes/

leetcode 892. 三維形體的表面積