zoukankan      html  css  js  c++  java
  • 三维形体的表面积(3.25leetcode每日打卡)

    在 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
     
    思路:因为是三维图形,所以同三个循环,分别表示x,y,z轴。第三个循环中,发现k>0说明z方向有重叠,减2,如果发现上一组的z大于当前的k说明也有重叠。
     1 int surfaceArea(int** grid, int gridSize, int* gridColSize)
     2 {
     3     int i,j,k,sum = 0;
     4     for(i = 0; i < gridSize; i++)
     5     {
     6         for(j = 0; j < gridColSize[i]; j++)
     7         {
     8             for(k = 0; k < grid[i][j]; k++)  //从下往上累计
     9             {
    10                 sum += 6;
    11                 //上下相邻
    12                 if(k > 0)
    13                 {
    14                     sum -=2;
    15                 }
    16                 //前面相邻
    17                 if(i>0 && grid[i-1][j] > k)
    18                 {
    19                     sum -= 2;
    20                 }
    21                 //左面相邻
    22                 if(j>0 && grid[i][j-1] > k)
    23                 {
    24                     sum -= 2;
    25                 }
    26 
    27             }
    28         }
    29     }
    30     return sum;
    31 }
     
  • 相关阅读:
    PHP | 运算符优先级
    Docker配置PHP+Nginx+MySQL
    Windows下Mysql主从配置
    php-fpm重启配置修改无效
    MySQL事务
    hadoop伪集群搭建
    Springboot2.x源码下载安装
    微服务——服务之间访问,用Feign请求服务接口超时如何解决?
    Lua安装
    日期——计算每月第一天和最后一天
  • 原文地址:https://www.cnblogs.com/ZhengLijie/p/12564469.html
Copyright © 2011-2022 走看看