LeetCode刷题日记 2020/03/25
力扣刷题继续!
题目:计算三维形体表面积
题干
在 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
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/surface-area-of-3d-shapes
解题思路: 每个立方体的表面积为6 根据给出的立方体个数 计算出一个整体的表面积 再减去每个立方体与相邻的立方体重叠的表面积即为计算结果 想明白这个 代码就很好出了
class Solution {
public int surfaceArea(int[][] grid) {
int N = grid.length;
int cubNum = 0; // 立方体的总个数
int faceNum = 0; // 立方体接触的面个数
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
cubNum += grid[i][j];
if (grid[i][j] > 0) {
// 叠起来的 v 个立方体有 v-1 个接触面
faceNum += grid[i][j] - 1;
}
if (i > 0) {
// 当前柱子与上边柱子的接触面数量
faceNum += Math.min(grid[i-1][j], grid[i][j]);
}
if (j > 0) {
// 当前柱子与左边柱子的接触面数量
faceNum += Math.min(grid[i][j-1], grid[i][j]);
}
}
}
return 6 * cubNum - 2 * faceNum;
}
}
LeetCode刷题日记 2020/03/25的更多相关文章
- Leetcode | 刷题日记(1)
本文记录个人刷题记录 推荐两个刷题网站: 地址:https://leetcode.com/ 另外一个地址:http://www.lintcode.com/ 1.Write a SQL query to ...
- LeetCode刷题总结-链表
LeetCode刷题总结-链表 一.链表 链表分为单向链表.单向循环链表和双向链表,一下以单向链表为例实现单向链表的节点实现和单链表的基本操作. 单向链表 单向链表也叫单链表,是链表中最简单的 ...
- C#LeetCode刷题-设计
设计篇 # 题名 刷题 通过率 难度 146 LRU缓存机制 33.1% 困难 155 最小栈 C#LeetCode刷题之#155-最小栈(Min Stack) 44.9% 简单 173 二叉搜索 ...
- C#LeetCode刷题-位运算
位运算篇 # 题名 刷题 通过率 难度 78 子集 67.2% 中等 136 只出现一次的数字 C#LeetCode刷题之#136-只出现一次的数字(Single Number) 53.5% 简单 ...
- C#LeetCode刷题-贪心算法
贪心算法篇 # 题名 刷题 通过率 难度 44 通配符匹配 17.8% 困难 45 跳跃游戏 II 25.5% 困难 55 跳跃游戏 30.6% 中等 122 买卖股票的最佳时机 II C ...
- C#LeetCode刷题-栈
栈篇 # 题名 刷题 通过率 难度 20 有效的括号 C#LeetCode刷题之#20-有效的括号(Valid Parentheses) 33.0% 简单 42 接雨水 35.6% 困难 71 简 ...
- C#LeetCode刷题-动态规划
动态规划篇 # 题名 刷题 通过率 难度 5 最长回文子串 22.4% 中等 10 正则表达式匹配 18.8% 困难 32 最长有效括号 23.3% 困难 44 通配符匹配 17.7% ...
- C#LeetCode刷题-二分查找
二分查找篇 # 题名 刷题 通过率 难度 4 两个排序数组的中位数 C#LeetCode刷题之#4-两个排序数组的中位数(Median of Two Sorted Arrays)-该题未达最优解 30 ...
- C#LeetCode刷题-数组
数组篇 # 题名 刷题 通过率 难度 1 两数之和 C#LeetCode刷题之#1-两数之和(Two Sum) 43.1% 简单 4 两个排序数组的中位数 C#LeetCode刷题之#4-两个排序数组 ...
- C#LeetCode刷题-数学
数学篇 # 题名 刷题 通过率 难度 2 两数相加 29.0% 中等 7 反转整数 C#LeetCode刷题之#7-反转整数(Reverse Integer) 28.6% 简单 8 字符串转整数 ...
随机推荐
- ICASSP 2022 | 前沿音视频成果分享:基于可变形卷积的压缩视频质量增强网络
阿里云视频云视频编码与增强技术团队最新研究成果论文<基于可变形卷积的压缩视频质量增强网络>(Deformable Convolution Dense Network for Compres ...
- 【辅助工具】Postman使用
Postman使用 批量处理 https://www.bbsmax.com/A/A7zglyjoJ4/ pm.test("测试结果成功", function () { pm ...
- js import的几种用法
最近昨天公司小朋友离职,临时接收其负责的vue前端项目.vue好久没做了,很多东西都忘记或以前也没接触,几天开始慢慢写点vue的小知识,算是历程或备忘吧. import在js.ts中用了不知多少次,但 ...
- 机器学习 | 剖析感知器算法 & Python实现
前言:本系列博客参考于 <机器学习算法导论>和<Python机器学习> 如有侵权,敬请谅解.本书尽量用总结性的语言重述本书内容,避免侵权. 上一篇已经初步介绍了机器学习相关知识 ...
- 【每日一题】40. 旅游 (树形DP解决树的最大独立集)
补题链接:Here 算法涉及:树形DP寻找树上最大独立集 一开始想到是利用 树形DP 找树的直径问题,但这里由于可以利用走过的点衍生,所以不符合树的直径问题 查询了一下资料这道题是属于: 树的最大独立 ...
- 秒杀活动java怎么实现
秒杀与其他业务最大的区别在于:秒杀的瞬间: (1)系统的并发量会非常的大 (2)并发量大的同时,网络的流量也会瞬间变大. 一个秒杀或者抢购页面,通常分为2个部分,一个是静态的HTML等内容,另一个就是 ...
- 打破 Serverless 落地边界,阿里云 SAE 发布 5 大新特性
微服务场景,开源自建真的最快最省最稳的?复杂性真的会成为 Kubernetes 的"致命伤"吗?企业应用容器化,一定得过 K8s 这座"独木桥"吗?Server ...
- vue3调用高德地图,实现地址,经纬度填写
父组件引用高德地图: 1 <template> 2 <div class="wrapper"> 3 <div class="box" ...
- vue.draggable中文文档
http://www.itxst.com/vue-draggable/fiamvqam.html https://blog.csdn.net/a772116804/article/details/10 ...
- node开发概述
一.Node开发概述 1. 为什么要学习服务器端开发 能够与后端程序员更加紧密的配合 网站业务逻辑前置,学习前端技术需要后端技术支撑(ajax) 扩宽知识视野,能够站在更高的角度审视整个项目 2. 服 ...