当前位置: 首页 > news >正文

千问 LeetCode 1739.放置盒子 public int minimumBoxes(int n)

这道题是 LeetCode 1739. 放置盒子,核心思路是贪心和找规律。

为了使接触地面的盒子数量最少,我们需要尽可能高效地向上堆叠。最优策略是让盒子靠墙角堆放,形成一个金字塔结构。

💡 核心思路

1. 构建完整的金字塔
我们首先尝试构建一个完整的、靠墙角的金字塔。这种堆叠方式下,每一层能放置的盒子数量遵循一个规律:
* 第 1 层(最底层):可以放 1 个盒子。
* 第 2 层:可以放 1 + 2 = 3 个盒子。
* 第 3 层:可以放 1 + 2 + 3 = 6 个盒子。
* ...
* 第 i 层:可以放 1 + 2 + ... + i = i * (i + 1) / 2 个盒子。

我们的第一步就是找到最大的 i,使得前 i 层盒子的总数不超过 n。

2. 处理剩余的盒子
在构建了完整的 i 层金字塔后,如果还有剩余的盒子,我们需要继续在地面上添加盒子。为了用最少的地面盒子承载最多的剩余盒子,我们应该沿着已有的金字塔边缘继续添加。
* 在地面上新增第 1 个盒子,它可以支撑其上方的 1 个盒子。
* 在地面上新增第 2 个盒子,它可以支撑其上方的 2 个盒子(一个在它上面,一个在它和前一个盒子之上)。
* 在地面上新增第 j 个盒子,它可以额外支撑 j 个盒子。

我们不断在地面上增加盒子,直到能够容纳所有剩余的盒子为止。

最终的答案就是完整金字塔的底层盒子数加上为剩余盒子新增的地面盒子数。

🧮 算法步骤

1. 初始化变量,用于计算完整金字塔的层数和总盒子数。
2. 循环计算,直到再增加一层就会超过 n 个盒子。
3. 计算还剩下多少个盒子需要放置。
4. 再次循环,计算需要在地面上新增多少个盒子才能容纳剩余的盒子。
5. 返回总的地面盒子数。

💻 Java 代码实现

public class Solution {
public int minimumBoxes(int n) {
int totalBoxes = 0; // 当前已放置的盒子总数
int currentLayerBoxes = 0; // 当前层(第i层)的盒子数
int i = 0; // 当前层数

// 第一步:构建完整的金字塔
// 只要再加一层不会超过n,就继续加
while (totalBoxes + currentLayerBoxes + (i + 1) 0) {
j++;
floorBoxes++; // 地面上多放一个盒子
remainingBoxes -= j; // 这个新盒子可以支撑j个盒子(包括它自己)
}

return floorBoxes;
}
}

http://www.jsqmd.com/news/699167/

相关文章:

  • Gitee:中国本土DevOps平台如何重塑企业研发管理范式
  • 【路径规划】基于遗传算法确定山路补给无人机的最佳路线Matlab代码
  • Newtonsoft.Json 架构解析:高性能JSON序列化框架的技术实现与调优
  • TestDisk PhotoRec:专业级数据恢复工具如何拯救你的丢失文件与分区
  • 河南加之固建筑:惠济区房屋改造公司 - LYL仔仔
  • 廊坊山美供应链管理:专业的廊坊库存货架公司 - LYL仔仔
  • 【VSCode 2026嵌入式烧录终极指南】:零配置实现STM32/ESP32/RP2040一键烧录,实测烧录速度提升3.8倍
  • 搜索系列·连通块问题
  • 用multiset的upper_bound/lower_bound优化你的LeetCode刷题:以‘数据流的中位数’和‘滑动窗口最大值’为例
  • rk3568 uboot图形化界面操作以及保存配置
  • CVPR 2026 Accepted?来预讲会做主角
  • 2026熙琦科技迷你手持打印设备常见选购问题解答干货分享 - 热敏感科技蜂
  • 泉州鼎盛拆除:靠谱的泉州墙体拆除哪家专业 - LYL仔仔
  • GLM-OCR API调用详解:Python示例,助你快速集成到项目
  • 常州环之宇再生资源:常州废品上门回收哪家专业 - LYL仔仔
  • Poe.com网页版深度体验:不装App,用浏览器同时“白嫖”GPT-3.5和Claude是什么体验?
  • ICode Python 2级闯关:从循环嵌套到多角色协同的综合编程思维训练
  • 力扣hot100(9-找到字符串中所有字母异位词;10-和为K的子数组)
  • Cursor Pro免费激活工具:跨平台设备标识重置技术方案
  • 2026年湖南长沙短视频运营与GEO豆包AI搜索推广深度横评|企业获客新赛道完全指南 - 年度推荐企业名录
  • 别再为音频格式发愁了!一个Java工具类搞定WAV转MP3、AMR转码(附完整代码和依赖配置)
  • 宪意(山东)建筑拆除:济南拆门窗服务商 - LYL仔仔
  • BarrageGrab:全平台直播弹幕抓取架构设计与企业级应用解决方案
  • 实测分享:3家在线平面设计公司对比,2026传媒/广告店线上设计辅助首选
  • open-xiaoai-bridge:让小爱同学语音控制任意智能设备
  • 南京乐意工程机械租赁:口碑好的南京叉车出租服务 - LYL仔仔
  • F5 NGINX Agent部署与运维实战:实现NGINX配置管理与监控自动化
  • 3分钟快速掌握AI视频水印移除技术:从技术原理到实战应用
  • 从头构建可审计合约项目:C++26 contracts + CMake + sanitizers + CI流水线(GitHub Actions一键部署版)
  • 为什么你的C++26合约始终不生效?深度解析__cpp_contracts宏、-fcontracts和-fcontract-continuation三者协同逻辑