• LeetCode 35. 三维形体的表面积


    题目描述

    在 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
     

    提示:

    1 <= N <= 50
    0 <= grid[i][j] <= 50

    解题思路

    咳咳咳

    题目是真的看不懂

    这一题的最大的难度就是看懂题目吧

    也许

     [[1,2],[3,4]] 的意思就是坐标0,0放1个正方体,坐标0,1放2个正方体,坐标1,0放3个正方体,坐标1,1放4个正方体,求这些正方体按这些坐标摆放后形成的立体图形的表面积

    代码如下

    package leetcode;
    
    public class SurfaceArea {
        public int surfaceArea(int[][] grid) {
            int result=0;
            for (int i = 0; i < grid.length; i++) {
                for (int j = 0; j < grid[i].length; j++) {
                    if (grid[i][j]!=0) 
                        //假设每个v=grid[i][j]都是独立的。
                        result+=grid[i][j]*4+2;
                    //减去面贴在一起的情况
                    if (i>0)
                        result-=Math.min(grid[i-1][j], grid[i][j])*2;
                    if (j>0)
                        result-=Math.min(grid[i][j-1], grid[i][j])*2;
                }
            }
            return result;
        }
    }
  • 相关阅读:
    括号序列的dp问题模型
    粉刷匠
    木棍加工
    物流运输
    最短路图
    DP基础(线性DP)总结
    离散化
    树链剖分
    NOIP2016 “西湖边超萌小松鼠” 模拟赛
    NOI导刊 2009 提高二
  • 原文地址:https://www.cnblogs.com/Transkai/p/12564955.html
Copyright © 2020-2023  润新知