Leetcode-892 Surface Area of 3D Shapes(三维形体的表面积)
1 class Solution 2 { 3 public: 4 int surfaceArea(vector<vector<int>> &grid) 5 { 6 int result = 0; 7 for(auto v:grid) 8 for(auto d:v) 9 { 10 if(d==1) 11 result += 6; 12 else if(d==0) 13 continue; 14 else 15 result += 6+4*(d-1); 16 17 } 18 // cout << result << endl; 19 for(int i = 0;i < grid.size();i ++) 20 { 21 for(int j = 0;j < grid[i].size();j ++) 22 { 23 if(i==grid.size()-1) 24 { 25 if(j==grid[i].size()-1) 26 { 27 continue; 28 } 29 else 30 { 31 if(grid[i][j]<grid[i][j+1]) 32 result -= grid[i][j]*2; 33 else 34 result -= grid[i][j+1]*2; 35 } 36 } 37 else 38 { 39 if(j==grid[i].size()-1) 40 { 41 if(grid[i][j]<grid[i+1][j]) 42 result -= grid[i][j]*2; 43 else 44 result -= grid[i+1][j]*2; 45 } 46 else 47 { 48 if(grid[i][j]<grid[i][j+1]) 49 result -= grid[i][j]*2; 50 else 51 result -= grid[i][j+1]*2; 52 if(grid[i][j]<grid[i+1][j]) 53 result -= grid[i][j]*2; 54 else 55 result -= grid[i+1][j]*2; 56 } 57 } 58 } 59 } 60 return result; 61 } 62 };