程序员面试金典 - 面试题 08.13. 堆箱子(DP)

1. 题目

堆箱子。给你一堆n个箱子,箱子宽 wi、深 di、高 hi。
箱子不能翻转,将箱子堆起来时,下面箱子的宽度、高度和深度必须大于上面的箱子。
实现一种方法,搭出最高的一堆箱子。箱堆的高度为每个箱子高度的总和

输入使用数组[wi, di, hi]表示每个箱子。示例1:输入:box = [[1, 1, 1], [2, 2, 2], [3, 3, 3]]输出:6示例2:输入:box = [[1, 1, 1], [2, 3, 4], [2, 6, 7], [3, 4, 5]]输出:10提示:
箱子的数目不大于3000个。

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

2. 解题

  • 类似题目:
    LeetCode 354. 俄罗斯套娃信封问题(最长上升子序 DP/二分查找)
    程序员面试金典 - 面试题 17.08. 马戏团人塔(最长上升子序 DP/二分查找)
    动态规划应用–最长递增子序列 LeetCode 300

  • 对一个维度进行降序排序

  • 剩下的跟最长递增子序列差不多,只不过求解的不是长度,是最大和

class Solution {
public:int pileBox(vector<vector<int>>& box) {sort(box.begin(), box.end(),[&](auto a, auto b) {return a[0] > b[0];//宽降序});int i, j, n = box.size();vector<int> dp(n,0);//以i箱子为顶的最大高度for(i = 0; i < n; ++i){dp[i] = box[i][2];//初始化自身高度for(j = 0; j < i; ++j)//跟前面的比较{if(box[i][0] < box[j][0] && box[i][1] < box[j][1]&& box[i][2] < box[j][2])//满足条件{dp[i] = max(dp[i], box[i][2]+dp[j]);//可以叠加,取最大的}}}return *max_element(dp.begin(),dp.end());}
};

280 ms 16.7 MB

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/476568.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一篇文章带你了解国企程序员(超详细)

源&#xff5c;Hollis、国企程序锅最近互联网大厂裁员不断&#xff0c;今天为大家带来了一篇超详细国企程序员攻略。文章目录入职国企心得体会一、入职前二、入职后三、工作开发内容四、钱总结&#xff1a;北京户口相关问题一、北京户口咋获得&#xff1f;二、北京户口有啥用&a…

Delphi作为客户端调用.Net写的WCF服务端?

这方面的文章太少了&#xff0c;查了半天也只看到一两篇&#xff0c;关键点 1.wcf的Binding要配成 basicHttpBinding&#xff0c;否则Delphi无法通过WebService的方式调用服务 2.Delphi IDE中的导入WSDL和安装目录下的wsdlimp.exe都无法正确识别WCF消息&#xff0c;需要到网上下…

html表单代码例子_关于React的这些细节,你知道吗?-表单

在 React 里&#xff0c;HTML 表单元素的工作方式和其他的 DOM 元素有些不同&#xff0c;这是因为表单元素通常会保持一些内部的 state。例如这个纯 HTML 表单只接受一个名称&#xff1a;此表单具有默认的 HTML 表单行为&#xff0c;即在用户提交表单后浏览到新页面。如果你在 …

程序员面试金典 - 面试题 17.23. 最大黑方阵(DP)

1. 题目 给定一个方阵&#xff0c;其中每个单元(像素)非黑即白。 设计一个算法&#xff0c;找出 4 条边皆为黑色像素的最大子方阵。 返回一个数组 [r, c, size] &#xff0c;其中 r, c 分别代表子方阵左上角的行号和列号&#xff0c;size 是子方阵的边长。 若有多个满足条件的…

js的oop方式和this指针问题

js的oop其实很简单&#xff0c;function本身就充当了类和构造函数的角色。然后通过传给构造函数的参数&#xff0c;完成类属性的赋值&#xff0c;从而实际化不同的对象。可是&#xff0c;js的oop也有很让人头疼的地方&#xff0c;其中之一就是this的指向。在js中&#xff0c;普…

史诗级学术骗局!一博士狂编 200 多篇论文,被揭发后畏罪自杀....

源&#xff5c;募格学术一博士狂编200多篇论文&#xff0c;被揭发后畏罪自杀&#xff0c;可他造成的撤稿影响直至今日还在继续&#xff0c;更有人称其的造假为科学史上最大的学术骗局之一。狂编200多篇论文发表&#xff0c;这个博士有点狠在著名学术打假网站 Retraction Watch …

docker安装_Docker安装

简介&#xff1a;Docker是一个供开发人员和系统管理员通过容器的方式构建、运行和共享应用程序的平台&#xff0c;通过容器的方式部署应用(打包成标准化单元&#xff0c;类似于一个集装箱)&#xff0c;具有安全、灵活、轻量、松耦合、可移植、可扩展等特点。概念&#xff1a;仓…

LeetCode 1139. 最大的以 1 为边界的正方形(DP)

1. 题目 给你一个由若干 0 和 1 组成的二维网格 grid&#xff0c;请你找出边界全部由 1 组成的最大 正方形 子网格&#xff0c;并返回该子网格中的元素数量。如果不存在&#xff0c;则返回 0。 示例 1&#xff1a; 输入&#xff1a;grid [[1,1,1],[1,0,1],[1,1,1]] 输出&…

大幅超越DALL·E 2和Imagen,斯坦福发布RA-CM3模型,融合检索与生成

文&#xff5c;QvQ最近&#xff0c;DALL-E和CM3等模型在多模态任务尤其是图文理解上表现出色。然而&#xff0c;这些模型似乎需要将所有学到的知识存储都存储在模型参数中&#xff0c;这就不得不需要越来越大的模型和训练数据来获取更多的知识&#xff0c;俨然将bigger and bet…

什么是域名服务器(DNS)

问题&#xff1a;什么是域名服务器&#xff1f;域名服务器是什么意思&#xff1f; 域名服务器即DNS&#xff0c;全称是Domain Name Server&#xff0c;一种程序&#xff0c;它保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表&#xff0c;以解析消息的域名。…

python判断正负的函数_Python |在计算操作的函数内将负数转换为正数?

我一直在寻找将负数转换为正数&#xff0c;我发现了一些东西&#xff0c;但没有成功.. 这是一个来自在线Python页面的练习&#xff0c;我正在学习Python。 我希望你明白这一点。 这是去洛杉矶旅行&#xff0c;我用功能计算钱&#xff0c;但现在有一个问题&#xff0c;我“从洛杉…

LeetCode 1325. 删除给定值的叶子节点(递归)

1. 题目 给你一棵以 root 为根的二叉树和一个整数 target &#xff0c;请你删除所有值为 target 的 叶子节点 。 注意&#xff0c;一旦删除值为 target 的叶子节点&#xff0c;它的父节点就可能变成叶子节点&#xff1b; 如果新叶子节点的值恰好也是 target &#xff0c;那么…

[翻译] python Tutorial 之一

声明&#xff1a;本文做为IronPython-2.0 B3的Tutorial 中文译文&#xff0c;内容全部来自其英文原文&#xff0c;其中本人认为存在疑问的或翻译不当之处会用原文中的内容加以标记&#xff0c;且本文内容完全用于研 究和学习IronPython 之用&#xff0c;限于本人英文翻译功底有…

用python控制钉钉软件_Python—实现钉钉后台开发

二、实现钉钉免登流程 免登流程分四步&#xff1a;1、前端获取钉钉免登授权码code&#xff1b;2、后端获取access_token&#xff1b;3、使用授权码code和access_token换取用户userid&#xff1b;4、通过access_token和userid换取用户详情userinfo。 前端获取授权码code。// 获取…

LeetCode 1123. 最深叶节点的最近公共祖先(递归比较子树高度)

1. 题目 给你一个有根节点的二叉树&#xff0c;找到它最深的叶节点的最近公共祖先。 回想一下&#xff1a; 叶节点 是二叉树中没有子节点的节点树的根节点的 深度 为 0&#xff0c;如果某一节点的深度为 d&#xff0c;那它的子节点的深度就是 d1如果我们假定 A 是一组节点 S…

万字综述:目标检测模型YOLOv1-v7深度解析

文&#xff5c;Rocky Ding源&#xff5c;WeThinkln大家好&#xff0c;我是Rocky。近年来YOLO系列层出不穷&#xff0c;更新不断&#xff0c;已经到v7版本。Rocky认为不能简单用版本高低来评判一个系列的效果好坏&#xff0c;YOLOv1-v7不同版本各有特色&#xff0c;在不同场景&a…

python手枪_Python入门,爬虫训练——枪械查询

一、效果图&#xff1a;二、怎么做到的&#xff1f; 1&#xff0c;首先安装requests、bs4. 这两个第三方模块。 我们按住winR 在弹出来的窗口上输入cmd&#xff0c;来到命令窗口&#xff0c;输入pip install requests、pip install bs4即可&#xff0c;网速慢的可以切换至国内源…

LeetCode 865. 具有所有最深结点的最小子树(递归)

1. 题目 给定一个根为 root 的二叉树&#xff0c;每个结点的深度是它到根的最短距离。 如果一个结点在整个树的任意结点之间具有最大的深度&#xff0c;则该结点是最深的。 一个结点的子树是该结点加上它的所有后代的集合。 返回能满足“以该结点为根的子树中包含所有最深的…

为什么python是解释型面向对象的语言_python为什么是面向对象的

Python虽然是解释型语言&#xff0c;但从设计之初就已经是一门面向对象的语言&#xff0c;对于Python来说一切皆为对象。正因为如此&#xff0c;在Python中创建一个类和对象是很容易的&#xff0c;当然如果习惯面向过程或者函数的写法也是可以的&#xff0c;Python并不做硬性的…

AI写剧本炸场戏剧节!DeepMind出品,马斯克看了直夸,网友看到接口悟了

文&#xff5c;羿阁 萧箫 发自 凹非寺源&#xff5c;量子位OpenAI的ChatGPT大火后&#xff0c;DeepMind终于也坐不住了&#xff01;这次&#xff0c;他们推出一款名为“Dramatron”的新AI&#xff0c;用上它人人都可以变身编剧或作家。只需给出一句话大纲&#xff0c;Dramatron…