文章目录

  • 1. 题目
  • 2. 解题

1. 题目

有一个立方体房间,其长度、宽度和高度都等于 n 个单位。
请你在房间里放置 n 个盒子,每个盒子都是一个单位边长的立方体。放置规则如下:

  • 你可以把盒子放在地板上的任何地方。
  • 如果盒子 x 需要放置在盒子 y 的顶部,那么盒子 y 竖直的四个侧面都 必须 与另一个盒子或墙相邻。

给你一个整数 n ,返回接触地面的盒子的 最少 可能数量。

示例 1:

输入:n = 3
输出:3
解释:上图是 3 个盒子的摆放位置。
这些盒子放在房间的一角,对应左侧位置。

示例 2:

输入:n = 4
输出:3
解释:上图是 3 个盒子的摆放位置。
这些盒子放在房间的一角,对应左侧位置。

示例 3:

输入:n = 10
输出:6
解释:上图是 10 个盒子的摆放位置。
这些盒子放在房间的一角,对应后方位置。提示:
1 <= n <= 10^9

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/building-boxes
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 根据题意,靠着墙角是最好的方法
  • 先假设这个完整的斜坡能摆满,多少层能超过 n
  • 然后多余出来的,第一次增加一个底部的可以摆 1 个,第二次增加一个底部的可以增加 2 个积木,依次类推
class Solution {public:int minimumBoxes(int n) {int ct = 1, layer = 1;while(ct < n){layer++;ct += layer*(layer+1)/2;//每一层的个数}if(ct == n) return layer*(layer+1)/2;ct -= layer*(layer+1)/2;int left = n-ct;//多出来的layer--;int bottom = layer*(layer+1)/2, delta = 1;while(left>0){bottom++;//每放下一个底部积木left -= delta++;//可以依次增加放置积木1,2,3,4。。。个}return bottom;}
};

0 ms 5.9 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 1739. 放置盒子(数学)相关推荐

  1. 1739 - 放置盒子 - 模拟 - 贪心 - 数学

    欢迎关注更多精彩 关注我,学习常用算法与数据结构,一题多解,降维打击. 文章目录 题目描述 题目描述 题目剖析&信息挖掘 解题思路 方法一 模拟+贪心+数学 分析 思路 注意 知识点 复杂度 ...

  2. 【1739. 放置盒子】

    来源:力扣(LeetCode) 描述: 有一个立方体房间,其长度.宽度和高度都等于 n 个单位.请你在房间里放置 n 个盒子,每个盒子都是一个单位边长的立方体.放置规则如下: 你可以把盒子放在地板上的 ...

  3. leetcode 《简单》 数学部分 Python实现

    leetcode <简单> 数学部分 Python实现 ''' Fizz Buzz 写一个程序,输出从 1 到 n 数字的字符串表示.1. 如果 n 是3的倍数,输出"Fizz& ...

  4. LeetCode 1861. 旋转盒子(前缀和)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个 m x n 的字符矩阵 box ,它表示一个箱子的侧视图.箱子的每一个格子可能为: '#' 表示石头 '*' 表示固定的障碍物 '.' 表示空位 ...

  5. LeetCode 319 灯泡开关[数学] HERODING的LeetCode之路

    解题思路: 这题本质就是数学,需要分析,每个灯泡会被翻转的时机正好是他的约数次遍历的时候,那么我们其实知道,对于每个数的约数都是成对出现的,除非是完全平方数,会有奇数个约数,所以,最后完全平方数的灯泡 ...

  6. 贪心(Greedy Algorithm)

    贪心(Greedy Algorithm) 贪心 44.通配符匹配 45.跳跃游戏 II 55.跳跃游戏 122.买卖股票的最佳时机II 134.加油站 135.分发糖果 179.最大数 277.搜寻名 ...

  7. 计算机没考好检讨,考试没考好检讨书范文(精选6篇)

    考试没考好检讨书范文(精选6篇) 在学习.工作.生活中出现了失误后,为了避免再犯,就需要写一份自我检讨书好好进行自我检讨,写检讨书是为了能够不断提醒自己.那么问题来了,到底应如何写检讨书呢?以下是小编 ...

  8. 架构设计文章读后感7

    欢迎关注个人博客喜欢二福的沧月君的个人博客 所读文章均来自www.infoq.cn 热度猛增serverless云开发技术架构解析,孟靖, 发展技术serverless热度制高点,. googletr ...

  9. 无限乱斗机器人ap出装_另类出装畅玩无限乱斗!AP小丑成致胜黑科技

    导语:很多英雄在召唤师峡谷的普通模式中玩法比较单一,因为技能CD的缘故所以不能有太多花哨的玩法,但是无限乱斗给了他们无限的可能,本次就为大家带来了一些在无限乱斗中可以有着另类出装的英雄,希望能够帮助大 ...

最新文章

  1. python3下载文件-python 3.3 下载固定链接文件并保存的方法
  2. 如何在SAP S/4HANA Fiori UI上创建新的扩展字段
  3. HA2795Billboard 可用线段树
  4. 揭秘神仙高校的课堂!网友跪了:这就是差距啊!
  5. java多线程 异常处理_Java8多线程ForkJoinPool:处理异常
  6. 【Hello CSS】第六章-文档流与排版
  7. NatureGenetics:所有五个异源四倍体棉花起源被厘清
  8. UIButton颜色渐变 titleLabel字体不显示
  9. 使用微软官方的Winpe系统安装操作系统(包括下载Winpe、制作U盘启动工具、安装操作系统)
  10. UE 简单存档读档功能
  11. 如何利用Python教你如何爬取高德地图!非常全面啊!
  12. CXY521.COM 网站刚上线,就被大家搞崩了!
  13. 阅读 redis 源码,学习缓存淘汰算法 W-TinyLFU
  14. OUC软件开发实验4
  15. 蓝牙核心协议学习 -- 基带协议(Baseband)
  16. 不用 Spring Security 可否?试试这个小而美的安全框架
  17. 【Docker】搭建Docker私库Harbor
  18. 【超详细】开源JZVideo饺子播放器播放器配置使用以及其自定义
  19. 计算机专业有哪些好的国企,这十大专业在国企中最受欢迎,待遇高、前景好,有你吗...
  20. 打造一个属于自己的ip代理工具 ProxyRoot

热门文章

  1. php控制器教程,laravel基础教程 -- 控制器
  2. centos mysql pid_centos7 mysql The server quit without updating PID file(错误解决)
  3. php 计算 目录大小,php计算整个目录大小的方法
  4. 基于matlab的大米,大米颗数计算MATLAB软件
  5. resin指定java版本_resin的几个常用配置
  6. html 转word c#,c#操作word类,进行html和word文档的互相转换
  7. 当c语言老师遇到网络崩溃,网络教学搞不定?工科教授来支招!
  8. mysql中下杠怎么打_怎么打字母下方的短横杠?,下横杠怎么打
  9. 洛谷1345 [Usaco5.4]奶牛的电信
  10. 链接学习之obj文件探索