• 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;
        }
    }
  • 相关阅读:
    Java注释中TODO/FIXME/XXX的含义
    关于update set from where
    WEB打印控件Lodop
    jQuery自动完成组建Autocomplete
    Java触发器CronTrigger
    JVM知识点
    JAVA_OPTS
    java.lang.NoClassDefFoundError:TagSupport
    $SVN代码版本管理工具的使用
    $Eclipse+Tomcat搭建本地服务器并跑通HelloWorld程序
  • 原文地址:https://www.cnblogs.com/Transkai/p/12564955.html
Copyright © 2020-2023  润新知