每日一题—— 三维形体投影面积

简介: 每日一题—— 三维形体投影面积

883. 三维形体投影面积

题目描述

在 n x n 的网格 grid 中,我们放置了一些与 x,y,z 三轴对齐的 1 x 1 x 1 立方体。

每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i, j) 上。

现在,我们查看这些立方体在 xy 、yz 和 zx 平面上的投影。

投影 就像影子,将 三维 形体映射到一个 二维 平面上。从顶部、前面和侧面看立方体时,我们会看到“影子”。

返回 所有三个投影的总面积 。

思路

正视图:每一行最大值之和;

侧视图:每一列最大值之和;

俯视图:柱子个数;

题解

func projectionArea(grid [][]int) int {
  n := len(grid)
  xoyProjectionArea, yozProjectionArea, xozProjectionArea := 0, 0, 0
  for i := 0; i < n; i++ {
    rowMax, colMax := math.MinInt64, math.MinInt64
    for j := 0; j < n; j++ {
      if len(grid)>i {
        if len(grid[i])>j {
          // 俯视图: 柱子数
          if grid[i][j] != 0 {
            xoyProjectionArea++
          }
          rowMax = max(rowMax, grid[i][j])
        }
      }
      if len(grid)>j {
        if len(grid[j])>i {
          colMax = max(colMax, grid[j][i])
        }
      }
    }
    // 侧视图: 每一列的最大值之和
    yozProjectionArea += rowMax
    // 正视图: 每一行的最大值之和
    xozProjectionArea += colMax
  }
  return xozProjectionArea + xoyProjectionArea + yozProjectionArea
}
func max(a, b int) int {
  if a > b {
    return a
  }
  return b
}

提交结果

相关文章
|
算法 前端开发
三维形体投影面积
三维形体投影面积
57 0
|
Serverless C语言 C++
【数学建模】利用C语言来实现 太阳赤纬 太阳高度角 太阳方位角 计算和求解分析 树木树冠阴影面积与种植间距的编程计算分析研究
【数学建模】利用C语言来实现 太阳赤纬 太阳高度角 太阳方位角 计算和求解分析 树木树冠阴影面积与种植间距的编程计算分析研究
266 1
|
6月前
|
存储 编解码 定位技术
技术心得:墨卡托投影、地理坐标系、地面分辨率、地图比例尺
技术心得:墨卡托投影、地理坐标系、地面分辨率、地图比例尺
196 0
|
7月前
[贴装专题] 基于halcon的最小二乘法计算吸嘴或机械轴旋转中心
[贴装专题] 基于halcon的最小二乘法计算吸嘴或机械轴旋转中心
206 0
|
数据可视化 C++
高斯正反算—投影坐标转大地坐标、大地坐标转投影坐标(附有完整代码及测试结果)
高斯正反算—投影坐标转大地坐标、大地坐标转投影坐标(附有完整代码及测试结果)
|
数据可视化 API
|
算法
LeetCode——883. 三维形体投影面积
LeetCode——883. 三维形体投影面积
112 0
LeetCode——883. 三维形体投影面积
|
Python
LeetCode每日一题——883. 三维形体投影面积
在 n x n 的网格 grid 中,我们放置了一些与 x,y,z 三轴对齐的 1 x 1 x 1 立方体。
126 0
LeetCode每日一题——883. 三维形体投影面积
|
机器学习/深度学习
883. 三维形体投影面积 : 简单模拟题
883. 三维形体投影面积 : 简单模拟题