做网站是用c 吗,企业网站备案代理公司,如何将qq音乐链接到wordpress,大麦网网站建设的功能定位文章目录1. 题目2. 解题1. 题目
给定两个正整数数组 boxes 和 warehouse #xff0c;分别包含单位宽度的箱子的高度#xff0c;以及仓库中n个房间各自的高度。 仓库的房间分别从0 到 n - 1 自左向右编号#xff0c;warehouse[i]#xff08;索引从 0 开始#xff09;是第 …
文章目录1. 题目2. 解题1. 题目
给定两个正整数数组 boxes 和 warehouse 分别包含单位宽度的箱子的高度以及仓库中n个房间各自的高度。 仓库的房间分别从0 到 n - 1 自左向右编号warehouse[i]索引从 0 开始是第 i 个房间的高度。
箱子放进仓库时遵循下列规则
箱子不可叠放。你可以重新调整箱子的顺序。箱子可以从任意方向左边或右边推入仓库中。如果仓库中某房间的高度小于某箱子的高度则这个箱子和之后的箱子都会停在这个房间的前面。
你最多可以在仓库中放进多少个箱子
示例 1:
输入: boxes [1,2,2,3,4], warehouse [3,4,1,2]
输出: 4解释:
我们可以按如下顺序推入箱子:
1- 从左边或右边把黄色箱子推入2号房间
2- 从右边把橙色箱子推入3号房间
3- 从左边把绿色箱子推入1号房间
4- 从左边把红色箱子推入0号房间
还有其他方式推入4个箱子比如交换红色与绿色箱子或者交换红色与橙色箱子。示例 2:
输入: boxes [3,5,5,2], warehouse [2,1,3,4,5]
输出: 3解释:
因为只有一个高度大于等于5的房间所以无法将两个高度为5的箱子都推入仓库。
还有其他方式推入箱子比如将绿色箱子推入2号房间或者在绿色及红色箱子之前将橙色箱子推入2号房间。示例 3:
输入: boxes [1,2,3], warehouse [1,2,3,4]
输出: 3示例 4:
输入: boxes [4,5,6], warehouse [3,3,3,3,3]
输出: 0提示:
n warehouse.length
1 boxes.length, warehouse.length 10^5
1 boxes[i], warehouse[i] 10^9来源力扣LeetCode 链接https://leetcode-cn.com/problems/put-boxes-into-the-warehouse-ii 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。 2. 解题
类似题目LeetCode 1564. 把箱子放进仓库里 I排序
分别从两侧计算有效高度然后取两者的较大者排序物品也排序双指针
class Solution {
public:int maxBoxesInWarehouse(vectorint boxes, vectorint warehouse) {vectorint h(warehouse.size());int MIN warehouse[0], n warehouse.size(), m boxes.size();for(int i 0; i n; i){MIN min(MIN, warehouse[i]);h[i] MIN;//有效的高度}MIN warehouse[n-1];for(int i n-1; i 0; --i){MIN min(MIN, warehouse[i]);warehouse[i] MIN;//有效的高度}for(int i 0; i n; i)warehouse[i] max(warehouse[i], h[i]);//取较大的sort(warehouse.begin(), warehouse.end());sort(boxes.begin(), boxes.end());int ans 0, i 0, j 0;while(im jn){if(boxes[i] warehouse[j]){ // 能放进去ans;i,j;}elsej; // 放不进去换下一个可能的更高的仓库}return ans;}
};156 ms 60.3 MB C 我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号Michael阿明一起加油、一起学习进步