zoukankan      html  css  js  c++  java
  • leetcode 892. 三维形体的表面积

    题目描述:

    在 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/

    
    
  • 相关阅读:
    函数的定义
    编码转换
    bytes类型
    用py操作文件(file类的功能)
    HASH哈希
    二进制、bit、 bytes
    POJ3225
    POJ1436
    HDU1394
    HDU1272
  • 原文地址:https://www.cnblogs.com/hdyss/p/10800162.html
Copyright © 2011-2022 走看看