高级软件工程师
分类 资讯中心 产品中心 最新文章 平谷区无人智能碾米机厂家直销 2026/03/02 17:34:54 上海自助智能碾米机制造厂商 2026/02/28 22:10:22 宁夏消防消防泵 2026/02/25 20:25:09 北京质量fluidlabR-300便携式细胞计数仪售价 2026/02/24 13:44:22 伊犁木箱要多少钱 2026/02/23 20:32:27 余杭区公司福利坚果礼盒加工厂 2026/02/21 17:52:07 推荐文章 网站备案的核验单手机可以做app的软件 2026/01/23 10:33:02 wordpress_子网站重命名吉林省建设工程信息网站 2026/01/21 19:37:01 建立网站后还要钱吗高水平的番禺网站建设 2026/01/23 00:20:01 网站死链接怎么处理渠道推广策略 2026/01/23 01:56:01 婚纱设计网站做一个短视频app需要多少钱 2026/01/22 21:25:01 婚纱摄影网站开发如何用asp做网站的登录界面 2026/01/23 18:38:02 asp.net 网站管理工具 安全建设一个能看视频的网站 北京孤凡电子商务有限公司 2026/03/03 03:37:21 asp.net 网站管理工具 安全,建设一个能看视频的网站,滕州网站建设培训,价格信息网题目堆箱子。给你一堆n个箱子#xff0c;箱子宽 wi、深 di、高 hi。箱子不能翻转#xff0c;将箱子堆起来时#xff0c;下面箱子的宽度、高度和深度必须大于上面的箱子。实现一种方法#xff0c;搭出最高的一堆箱子。箱堆的高度为每个箱子高度的总和。输入使用数组[wi, di,…题目堆箱子。给你一堆n个箱子箱子宽 wi、深 di、高 hi。箱子不能翻转将箱子堆起来时下面箱子的宽度、高度和深度必须大于上面的箱子。实现一种方法搭出最高的一堆箱子。箱堆的高度为每个箱子高度的总和。输入使用数组[wi, di, hi]表示每个箱子。答题思路先明确核心目标把箱子叠起来要求上面的箱子比下面的小宽、深、高都小叠出最高的高度和。第一步先认识 “箱子”—— 结构体定义// 箱子结构体宽(w)、深(d)、高(h) struct Box { int w, d, h; Box(int w 0, int d 0, int h 0) : w(w), d(d), h(h) {} };struct Box定义一个 “箱子” 类型就像给 “箱子” 定规矩 —— 每个箱子必须有 3 个属性宽度 w、深度 d、高度 h。int w, d, h;声明这 3 个属性都是整数。Box(int w 0, int d 0, int h 0) : w(w), d(d), h(h) {}这是 “箱子的构造函数”。第二步存储所有箱子 —— 全局变量vectorBox g_boxes; // 存储所有箱子数据 vectorint g_memo; // 记忆化数组记录已计算的堆顶最大高度第三步给箱子 “排个队”—— 排序规则// 排序规则宽→深→高降序简化堆叠条件判断 bool cmpDesc(Box a, Box b) { if (a.w ! b.w) return a.w b.w; if (a.d ! b.d) return a.d b.d; return a.h b.h; }作用把所有箱子按 “从大到小” 排序排序后是 “箱子 A10,8,5→箱子 B9,7,4→箱子 C8,6,3”后续判断 “能不能叠” 时只需要看 “后面的箱子是不是比前面的小”。解法 1暴力枚举最笨但最容易懂的办法核心逻辑把所有 “选 / 不选这个箱子” 的可能都试一遍找到最高的组合。1. 递归函数核心// 暴力解法递归枚举选/不选当前箱子时间复杂度O(2ⁿ) int bruteDfs(int index, Box prevBox) { // 递归终止所有箱子遍历完没有可选的了返回高度0 if (index g_boxes.size()) return 0; // 选项1不选当前箱子直接递归处理下一个箱子 int option1 bruteDfs(index 1, prevBox); // 选项2选当前箱子满足堆叠约束当前上一个 int option2 0; if (g_boxes[index].w prevBox.w g_boxes[index].d prevBox.d g_boxes[index].h prevBox.h) { option2 g_boxes[index].h bruteDfs(index 1, g_boxes[index]); } // 返回“选”和“不选”中高度更大的那个 return max(option1, option2); }函数参数int index当前看到第几个箱子Box prevBox上一个被选中的箱子。解读if (index g_boxes.size()) return 0;g_boxes.size()是 “总共有多少个箱子”比如有 3 个箱子size3意思是 “如果已经看完了所有箱子index3没有可选的了叠出来的高度就是 0没箱子可叠”—— 这是递归的 “终点”必须有否则程序会无限循环。int option1 bruteDfs(index 1, prevBox);翻译“不选第 index 个箱子直接看下一个箱子index1”比如现在看第 0 个箱子不想选它就直接去看第 1 个箱子prevBox不变因为没选当前箱子上一个箱子还是原来的option1存的是 “不选当前箱子时后面能叠出的最大高度”。int option2 0;option2存的是 “选当前箱子时能叠出的最大高度”先默认是 0如果不能选高度就是 0。if (g_boxes[index].w prevBox.w ...)核心条件“当前箱子第 index 个的宽、深、高都比上一个箱子prevBox小”—— 满足这个条件才能把当前箱子叠在 prevBox 上面g_boxes[index]取 “装箱子的大列表” 里第 index 个箱子g_boxes[index].w第 index 个箱子的宽度prevBox.w上一个箱子的宽度。option2 g_boxes[index].h bruteDfs(index 1, g_boxes[index]);翻译“选当前箱子的话总高度 当前箱子的高度 看下一个箱子能叠出的最大高度”注意选了当前箱子后下一个箱子要叠在 “当前箱子” 上面所以prevBox要换成g_boxes[index]上一个箱子变成当前这个了。return max(option1, option2);max(a,b)是取 a 和 b 中更大的那个数意思是 “选不选当前箱子哪个能叠得更高就选哪个方案”。2. 暴力解法入口函数int bruteForce(vectorBox boxes) { int n boxes.size(); if (n 0) return 0; // 边界没箱子时高度为0 sort(boxes.begin(), boxes.end(), cmpDesc); // 先排序简化判断 g_boxes boxes; // 把排序后的箱子存入全局变量供递归使用 // 初始化“虚拟堆底”用w/d/h都是极大值的箱子所有真实箱子都能堆在它上面 Box dummy(INT_MAX, INT_MAX, INT_MAX); return bruteDfs(0, dummy); // 从第0个箱子开始递归初始堆底是虚拟箱子 }解读int bruteForce(vectorBox boxes)函数接收 “装箱子的列表” 作为参数返回最终的最大高度。int n boxes.size();算出总共有多少个箱子比如列表里有 3 个箱子n3。if (n 0) return 0;如果没有箱子叠出来的高度就是 0。sort(boxes.begin(), boxes.end(), cmpDesc);给所有箱子按 “从大到小” 排序用前面定义的cmpDesc规则。g_boxes boxes;把排序后的箱子列表存到全局变量g_boxes里这样递归函数bruteDfs能拿到所有箱子。Box dummy(INT_MAX, INT_MAX, INT_MAX);创建一个 “超级大箱子”INT_MAX是 C 里的 “整数最大值”比如 2147483647作为 “最底下的虚拟箱子”—— 所有真实箱子都比它小所以第一个选的箱子可以直接叠在它上面。return bruteDfs(0, dummy);从第 0 个箱子第一个箱子开始递归初始的 “上一个箱子” 是这个超级大箱子。解法 2记忆化搜索给暴力解法 “记笔记”核心逻辑暴力解法会重复算同一个箱子作为 “堆顶” 的最大高度用一个 “小本本” 记下来下次直接用不用再算。1. 记忆化递归函数// 记忆化搜索递归返回以index为堆顶的最大高度时间复杂度O(n²) int memoDfs(int index) { // 核心优化如果已经计算过该结果直接返回避免重复递归 if (g_memo[index] ! -1) return g_memo[index]; // 初始值仅当前箱子作为堆顶高度就是它自己的h int maxH g_boxes[index].h; // 遍历后续箱子寻找可堆叠的箱子 for (int i index 1; i g_boxes.size(); i) { // 堆叠约束i号箱子比index号小能堆在index下面 if (g_boxes[i].w g_boxes[index].w g_boxes[i].d g_boxes[index].d g_boxes[i].h g_boxes[index].h) { // 递归计算当前高度 以i为堆顶的最大高度 maxH max(maxH, g_boxes[index].h memoDfs(i)); } } // 记录结果到记忆数组供后续使用 g_memo[index] maxH; return maxH; }先明确memoDfs(index)的意思是 “算一算以第 index 个箱子为‘堆顶’时能叠出的最大高度”。解读if (g_memo[index] ! -1) return g_memo[index];g_memo是 “记笔记的小本本”初始化时所有位置都是 - 1表示 “没算过”意思是 “如果第 index 个箱子的最大高度已经算过了直接把记的数返回不用再算一遍”。int maxH g_boxes[index].h;初始值如果只叠这一个箱子第 index 个高度就是它自己的高度比如第 0 个箱子高度 5maxH5。for (int i index 1; i g_boxes.size(); i)遍历第 index 个箱子后面的所有箱子因为已经排序后面的箱子更小找能叠在它下面的箱子。if (g_boxes[i].w g_boxes[index].w ...)判断第 i 个箱子能不能叠在第 index 个箱子下面i 比 index 小。maxH max(maxH, g_boxes[index].h memoDfs(i));意思是 “如果第 i 个箱子能叠在下面总高度 当前箱子高度 以 i 为堆顶的最大高度”比如第 0 个箱子高度 5第 1 个箱子能叠在下面且以 1 为堆顶的最大高度是 7那总高度 5712比原来的 5 大所以 maxH 更新为 12。g_memo[index] maxH;把算出来的 “以 index 为堆顶的最大高度” 记到小本本里下次再要算这个数直接取就行。2. 记忆化搜索入口函数int memoSearch(vectorBox boxes) { int n boxes.size(); if (n 0) return 0; sort(boxes.begin(), boxes.end(), cmpDesc); // 统一排序规则 g_boxes boxes; g_memo.clear(); g_memo.resize(n, -1); // 初始化记忆数组-1表示“该位置还没计算过” int maxHeight 0; // 枚举所有箱子作为堆顶找全局最大高度 for (int i 0; i n; i) { maxHeight max(maxHeight, memoDfs(i)); } return maxHeight; }解读g_memo.resize(n, -1);把 “小本本” 的大小设为箱子数量所有位置初始值都是 - 1没算过。for (int i 0; i n; i)挨个算 “以第 0 个、第 1 个、第 2 个箱子为堆顶的最大高度”最后取最大的那个就是全局最大高度。记忆化搜索的优势时间复杂度 O (n²)每个箱子只算一次每个箱子遍历后面的 n 个箱子总次数是 n×n比暴力解法的 2ⁿ快太多比如 n20暴力要算 100 万次记忆化只算 400 次。解法 3动态规划不用递归直接算核心逻辑把记忆化的 “递归” 改成 “循环”一步步算每个箱子作为堆顶的最大高度没有递归的额外开销是最优解。动态规划函数// 动态规划dp[i] 以第i个箱子为堆顶的最大高度时间复杂度O(n²) int dynamicProgramming(vectorBox boxes) { int n boxes.size(); if (n 0) return 0; sort(boxes.begin(), boxes.end(), cmpDesc); // 排序简化判断 vectorint dp(n, 0); int maxHeight 0; for (int i 0; i n; i) { dp[i] boxes[i].h; // 初始值仅当前箱子 // 递推遍历前置可堆叠箱子更新dp[i] for (int j 0; j i; j) { if (boxes[j].w boxes[i].w boxes[j].d boxes[i].d boxes[j].h boxes[i].h) { dp[i] max(dp[i], dp[j] boxes[i].h); } } maxHeight max(maxHeight, dp[i]); } return maxHeight; }先明确dp[i]和记忆化的memoDfs(i)意思完全一样 ——“以第 i 个箱子为堆顶的最大高度”只是用数组存不用递归算。解读vectorint dp(n, 0);创建一个长度为 n 的数组 dp初始值都是 0比如 n3dp[0,0,0]。for (int i 0; i n; i)遍历每个箱子算它作为堆顶的最大高度。dp[i] boxes[i].h;初始值只叠这一个箱子高度就是它自己的高度比如 i0dp [0]5i1dp [1]4i2dp [2]3。for (int j 0; j i; j)遍历第 i 个箱子前面的所有箱子j i因为排序后前面的箱子更大找能叠在 i 下面的箱子。if (boxes[j].w boxes[i].w ...)判断第 j 个箱子能不能叠在 i 下面j 比 i 大所以 i 能叠在 j 上面i 是堆顶。dp[i] max(dp[i], dp[j] boxes[i].h);意思是 “如果 j 能叠在 i 下面那 i 作为堆顶的高度 j 作为堆顶的高度 i 的高度”比如 i1高度 4j0能叠dp [j]5 → 549比原来的 4 大所以 dp [1] 更新为 9比如 i2高度 3j0能叠dp [j]5 →538j1能叠dp [j]9 →9312 → dp [2] 更新为 12。maxHeight max(maxHeight, dp[i]);每次算完 dp [i]都和当前的最大高度比保留更大的那个比如算完 dp [2]12maxHeight12。动态规划的优势和记忆化搜索时间复杂度一样O (n²)但没有递归的 “函数调用、栈帧切换” 开销实际运行速度更快比如 n50记忆化要 4 毫秒动态规划只要 1.5 毫秒。最后三种解法核心对比解法核心思想时间复杂度空间复杂度优缺点暴力递归枚举底层递归上层O(2n)O(n²)简单但效率极低记忆化搜索哈希表存储重复计算结果O(n²)O(n²)解决“重复计算”,有递归栈开销动态规划排序递推记录中间状态O(n²)O(n)从“递归”转“递推”去掉哈希开销 点赞 () 分享 收藏 返回列表 版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除! 网站备案的核验单手机可以做app的软件网站备案的核验单,手机可以做app的软件,正规的扬中网站建设,深圳网站搜索引擎优化Chrome 团队推出的 CSS 年度总结。https://chrome.dev/css-wrapped-2025/
2026/01/23 10:33:02 wordpress_子网站重命名吉林省建设工程信息网站wordpress_子网站重命名,吉林省建设工程信息网站,网站建设中 源码,品牌推广软文作为计算机视觉领域最受欢迎的开源三维重建工具#xff0c;COLMAP#xff08;Structure-from
2026/01/21 19:37:01 建立网站后还要钱吗高水平的番禺网站建设建立网站后还要钱吗,高水平的番禺网站建设,校园网上超市网站建设推广,网站新闻百度收录ExplorerPatcher终极清理指南#xff1a;彻底告别系统残留问题 【免费下载链接】ExplorerPat
2026/01/23 00:20:01 网站死链接怎么处理渠道推广策略网站死链接怎么处理,渠道推广策略,建设网站翻译,网站代码修改终极时间转换方案#xff1a;ms.js 从入门到精通 【免费下载链接】ms 项目地址: https://gitcode.com/gh
2026/01/23 01:56:01 婚纱设计网站做一个短视频app需要多少钱婚纱设计网站,做一个短视频app需要多少钱,wordpress 移动商城主题,宜宾汽车网站建设第一章#xff1a;变量传递效率提升80%#xff01;你不可不知的R-Python内存管理秘诀在数据科学
2026/01/22 21:25:01 婚纱摄影网站开发如何用asp做网站的登录界面婚纱摄影网站开发,如何用asp做网站的登录界面,坪山网站建设代理商,关键词做网站名字一、数据介绍 数据名称#xff1a;上市公司数字技术赋能数据2024-2001含代码原始数据#xff08;企业层面
2026/01/23 18:38:02 免费视频素材网站哪个最好app store切换账号免费视频素材网站哪个最好,app store切换账号,公司简介模板及介绍,外包网络安全管理制度BPAdaboost模型 1、Adaboost算法是将BP神经网络作为“弱”分类器#xff0c;通过不断训
2026/01/23 10:19:01 网站做sem推广时要注意什么在线制作带字图片网站做sem推广时要注意什么,在线制作带字图片,太仓手机网站建设价格,扫描网站特征dede目录已开发项目效果实现截图开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 #
2026/01/21 17:53:01 专业国外建设网站南宁哪些公司专业做网站专业国外建设网站,南宁哪些公司专业做网站,网站中的ppt链接怎么做的,商标注册费用医疗行业AI助手新方案#xff1a;使用Kotaemon实现精准问答 在一家三甲医院的互联网诊疗平台上#xff0c;
2026/01/23 08:00:01 北京考试学院网站首页房产中介如何找客源北京考试学院网站首页,房产中介如何找客源,网盘做网站服务器,网站建设规划书样板NEURO-GUARD: Neuro-Symbolic Generalization and Unbiased Adapt
2026/01/21 19:47:01 © 2025 北京孤凡电子商务有限公司. All rights reserved. 关于我们 使用条款 隐私政策 联系我们智能索引记录
-
2026-03-02 16:43:02
综合导航
成功
标题:episode 32 おもいでケータイ再起動 au
简介:昔、使っていたケータイは、世界にひとつのタイムカプセル。au は電源が入らなくなったケータイを再起動、大切な思い出をとり
-
2026-03-02 14:39:52
综合导航
成功
标题:三年级描写景作文(优)
简介:无论是身处学校还是步入社会,大家或多或少都会接触过作文吧,作文是人们把记忆中所存储的有关知识、经验和思想用书面形式表达出
-
2026-03-02 10:55:52
综合导航
成功
标题:† Thede. World English Historical Dictionary
简介:† Thede. World English Historical Dictionary
-
2026-03-02 09:46:19
综合导航
成功
标题:Foxy Mobile Games Online - 4J.Com
简介:There are 2 Mobile games related to Foxy on 4J.com. Click to
-
2026-03-02 15:09:12
教育培训
成功
标题:【实用】生日的作文800字集锦七篇
简介:在日常学习、工作或生活中,大家总免不了要接触或使用作文吧,作文是人们把记忆中所存储的有关知识、经验和思想用书面形式表达出
-
2026-03-02 14:48:46
综合导航
成功
标题:WTS deepens presence in Eastern Europe by joining forces with WTS&SAJA WTS Germany
简介:Press Release: WTS, an international full-service provider o
-
2026-03-02 06:30:10
综合导航
成功
标题:学雷锋作文读后感
简介:在我们平凡的日常里,大家总少不了接触作文吧,借助作文可以宣泄心中的情感,调节自己的心情。你知道作文怎样写才规范吗?下面是
-
2026-03-02 10:49:12
综合导航
成功
标题:西游记读后感合集【15篇】
简介:当品读完一部作品后,你有什么体会呢?这时最关键的读后感不能忘了哦。是不是无从下笔、没有头绪?以下是小编为大家整理的西游记
-
2026-03-02 12:52:40
综合导航
成功
标题:DUNE Release Still 'A Few Years Away,' Says Funcom - PlayStation Universe
简介:Funcom has issued an update on the DUNE release, stating it
-
2026-03-02 06:30:58
新闻资讯
成功
标题:浪潮服务器成功中标万达年度集采 金额达1200万元, 站长资讯平台
简介:日前,浪潮服务器成功中标大连万达集团股份有限公司的2019年服务器集采,中标金额达1200万元。浪潮的双路服务器NF51
-
2026-03-02 06:28:58
教育培训
成功
标题:语文老师作文集锦【4篇】
简介:在日复一日的学习、工作或生活中,大家都跟作文打过交道吧,写作文可以锻炼我们的独处习惯,让自己的心静下来,思考自己未来的方
-
2026-03-02 10:04:41
教育培训
成功
标题:爷爷作文【精品10篇】
简介:在平凡的学习、工作、生活中,大家都经常接触到作文吧,作文可分为小学作文、中学作文、大学作文(论文)。还是对作文一筹莫展吗
-
2026-03-02 10:13:28
综合导航
成功
标题:Xiaomi 13 Ultra brings back long-lost Samsung Galaxy camera trick to blow away the competition T3
简介:The Xiaomi 13 Ultra packs Leica tuning and four 50MP cameras
-
2026-03-02 09:54:32
教育培训
成功
标题:0基础网站开发wordpress 别名 自动-北京孤凡电子商务有限公司
简介:0基础网站开发,wordpress 别名 自动,开发软件平台,网站怎么做扫码微信支付接口PaddlePaddle镜像为何
-
2026-03-02 15:10:44
图片素材
成功
标题:分享的作文550字 描写分享的作文 关于分享的作文-作文网
简介:作文网精选关于分享的550字作文,包含分享的作文素材,关于分享的作文题目,以分享为话题的550字作文大全,作文网原创名师
-
2026-03-02 10:11:40
综合导航
成功
标题:有关四年级乡村景色作文(通用20篇)
简介:在平平淡淡的日常中,说到作文,大家肯定都不陌生吧,通过作文可以把我们那些零零散散的思想,聚集在一块。那么问题来了,到底应
-
2026-03-02 10:26:34
综合导航
成功
标题:Schaeffler Germany
简介:Schaeffler has been driving forward groundbreaking invention
-
2026-03-02 10:44:50
教育培训
成功
标题:我喜爱的玩具二年级作文
简介:在平时的学习、工作或生活中,大家都尝试过写作文吧,作文是人们把记忆中所存储的有关知识、经验和思想用书面形式表达出来的记叙
-
2026-03-02 10:58:43
综合导航
成功
标题:Ben Jackson
简介:Ben Jackson: Programmer, Pilot, Builder of interesting thin
-
2026-03-02 18:57:14
综合导航
成功
标题:Rollance Adventure Balls - Play The Free Mobile Game Online
简介:Rollance Adventure Balls - click to play online. Rollance Ad
-
2026-03-02 12:21:04
教育培训
成功
标题:有你,真好作文【集合6篇】
简介:在平平淡淡的学习、工作、生活中,大家都尝试过写作文吧,作文是人们把记忆中所存储的有关知识、经验和思想用书面形式表达出来的
-
2026-03-02 10:23:06
综合导航
成功
标题:495015267-1150 Heater Jacket
简介:The 495015267-1150 Polyimide Heater Jacket is designed for u
-
2026-03-02 12:22:03
综合导航
成功
标题:Skibidi Toilet.Io - Io Games Unblocked
简介:Skibidi Bathroom.Io is one of the most popular games out the
-
2026-03-02 10:30:36
综合导航
成功
标题:黼ä¾çæ¼é³_黼ä¾çææ_黼ä¾çç¹ä½_è¯ç»ç½
简介:è¯ç»ç½é»¼ä¾é¢é,ä»ç»é»¼ä¾,黼ä¾çæ¼é³,黼便¯
-
2026-03-02 15:40:59
综合导航
成功
标题:快乐的一天_450字_作文网
简介:没想到,今天是非常快乐的一天。我实在是想不到呀!今天是我在读书前的第4天,可以说是开心,或是难过。因为在早上的时候就遇到
-
2026-03-02 10:07:05
综合导航
成功
标题:雨的诉说初三作文(精选10篇)
简介:在我们平凡的日常里,大家都经常接触到作文吧,作文要求篇章结构完整,一定要避免无结尾作文的出现。作文的注意事项有许多,你确
-
2026-03-02 18:54:50
综合导航
成功
标题:Board of the Beitlich Family Foundation: CHT Group
简介:Members of the Beitlich Family Foundation, which as a superv
-
2026-03-02 11:02:04
综合导航
成功
标题:Pierre Bacus
简介:1x.com is the world
-
2026-03-02 10:39:42
视频影音
成功
标题:财富自由从获得系统开始第88集河马短剧_在线播放[高清流畅]_爽文短剧
简介:爽文短剧_财富自由从获得系统开始剧情介绍:财富自由从获得系统开始是由内详执导,内详等人主演的,于2025年上映,该都市讲
-
2026-03-02 19:14:45
综合导航
成功
标题:ç¾ççæ¼é³_ç¾ççææ_ç¾ççç¹ä½_è¯ç»ç½
简介:è¯ç»ç½ç¾çé¢é,ä»ç»ç¾ç,ç¾ççæ¼é³,ç¾çæ¯