LeetCode 1580. 把箱子放进仓库里 II(排序)

文章目录

    • 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(vector<int>& boxes, vector<int>& warehouse) {vector<int> 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(i<m && j<n){if(boxes[i] <= warehouse[j]){ // 能放进去ans++;i++,j++;}elsej++; // 放不进去,换下一个可能的更高的仓库}return ans;}
};

156 ms 60.3 MB C++


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

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

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

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

相关文章

oracle如何检查是否rac,Oracle RAC 状态检查

(1)srvctl status database -d dbservernameOraclezjgldb2$srvctl status database -d kms实例 kms1 正在节点 zjgldb1 上运行实例 kms2 正在节点 zjgldb2 上运行(2)crs_stat -toraclezjgldb2$crs_stat -t名称 类型 目标 状态 主机-------------…

LeetCode 1602. 找到二叉树中最近的右侧节点(BFS)

文章目录1. 题目2. 解题1. 题目 给定一棵二叉树的根节点 root 和树中的一个节点 u &#xff0c;返回与 u 所在层中距离最近的右侧节点&#xff0c;当 u 是所在层中最右侧的节点&#xff0c;返回 null 。 示例 1&#xff1a; 输入&#xff1a;root [1,2,3,null,4,5,6], u …

vue获取table一列数据_vue表格含有一列多选框,如何获取被选中的行的数据?

1.仿照element-ui官网贴出的demo&#xff0c;table表格多选&#xff0c;选择多行数据时使用 Checkbox。但是无法获取this.multipleSelection的值。相关代码如下&#xff1a;男女个人团队电话: {{ scope.row.stel }}邮箱: {{ scope.row.smail }}地址: {{ scope.row.sadd }}{{ sc…

《你的灯亮着吗》阅读笔记(三)

还有一点感触很深的就是当我们遇到问题时&#xff0c;总是想如何找到一个好的办法来解决问题&#xff0c;然而这往往是治标不治本&#xff0c;不能从根本上解决问题。 再联系我们的小项目&#xff0c;比如在我们编写代码时&#xff0c;出现了一个小BUG&#xff0c;如果我们不去…

oracle 集群 配置,Oracle集群配置

进入em 管理界面看看&#xff0c;现在可以看到已经可以在一个farm里面管理所有的instance了。接下来设置一些 session复制的信息&#xff0c;点击进入 iastest.finproduction.tplife.com 管理界面&#xff0c;然后选择 home&#xff0c;进入 oc4j的管理界面&#xff0c;接着选择…

LeetCode meituan-001. 小美的用户名

文章目录1. 题目2. 解题1. 题目 小美是美团的前端工程师&#xff0c;为了防止系统被恶意攻击&#xff0c;小美必须要在用户输入用户名之前做一个合法性检查&#xff0c;一个合法的用户名必须满足以下几个要求&#xff1a; 用户名的首字符必须是大写或者小写字母。用户名只能包…

c语言是非结构化程序语言_一个资深C语言工程师说C语言的重要性!直言道:不学C学什么?...

前言C语言属于高级程序语言的一种&#xff0c;它的前身是“ALGOL”。其创始人是布朗W卡尼汉和丹尼斯M利奇。C语言问世时是带有很大的局限性&#xff0c;因为它只能用于UNIX系统上。然而随着科学技术的进步&#xff0c;计算机工业的发展&#xff0c;C语言逐渐脱离UNIX。1987年美…

C++ const关键字总结

const是一个C语言的限定符&#xff0c;它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性。另外&#xff0c;在观看别人代码的时候&#xff0c;清晰理解const所起的作用&#xff0c;对理解对方的程序也有一些帮助。 1. 修饰常量 用const修饰的变…

LeetCode 5832. 构造元素不等于两相邻元素平均值的数组

文章目录1. 题目2. 解题1. 题目 给你一个 下标从 0 开始 的数组 nums &#xff0c;数组由若干 互不相同的 整数组成。 你打算重新排列数组中的元素以满足&#xff1a;重排后&#xff0c;数组中的每个元素都 不等于 其两侧相邻元素的 平均值 。 更公式化的说法是&#xff0c;重…

课程改进意见

我认为老师挺注重我们的编程能力的&#xff0c;虽然作业不是一般的多&#xff0c;还要申请博客&#xff0c;发博客&#xff0c;发阅读笔记等一些无聊繁琐的东西。但是我敢感觉效果还不错&#xff0c;最起码又多编了几百行的代码&#xff0c;练习了自己的编程能力&#xff0c;还…

怎样切换git账号密码错误_git中多账号切换问题的解决方案(转)

git多账号切换其实是有https的解决方案的&#xff0c;可以省去ssh配置公钥相关的麻烦&#xff0c;不过安全性会降低&#xff0c;后面会提到。比如你想用A账号管理本地仓库repoA&#xff0c;用B账号管理本地仓库repoB。那么首先&#xff0c;看一下gloabal和system的config&#…

oracle磁盘组故障组的概念,ASM中理解的问题大家帮忙!!(asm的外部冗余,为什么也有故障组呢?)...

确认几个ASM概念与问题 大家看正确与否&#xff1a;1、只要磁盘放在asm的磁盘组中就必须定义到故障组中&#xff0c;没有任何磁盘即在磁盘组中又不在故障组中的&#xff0c;无论你是外部冗余&#xff0c;普通冗余&#xff0c;还是高度冗余。2、无论是哪种冗余&#xff0c;数据文…

【学习笔记】【C语言】类型说明符

1. short和long 1> short和long可以提供不同长度的整型数&#xff0c;也就是可以改变整型数的取值范围。在64bit编译器环境下&#xff0c;int占用4个字节&#xff08;32bit&#xff09;&#xff0c;取值范围是-231~231-1&#xff1b;short占用2个字节&#xff08;16bit&…

LeetCode 5843. 作为子字符串出现在单词中的字符串数目

文章目录1. 题目2. 解题1. 题目 给你一个字符串数组 patterns 和一个字符串 word &#xff0c;统计 patterns 中有多少个字符串是 word 的子字符串。 返回字符串数目。 子字符串 是字符串中的一个连续字符序列。 示例 1&#xff1a; 输入&#xff1a;patterns ["a&quo…

linux读取内存文件,linux – 使用模块读取内核内存

首先让我先说读任意内核内存是一件棘手的事&#xff01;并且有很多方法可以做到这一点,它们的复杂程度和灵活性各不相同.1)硬编码地址.在内核版本的System.map文件中搜索它&#xff1a;# grep sys_call_table /boot/System.map-2.6.18-238.12.1.el5c06254e0 R sys_call_table有…

antd的 input有下拉_解决antd 下拉框 input [defaultValue] 的值的问题

项目中有下拉框跟input需要回显&#xff0c;所以用到defaultValue这个默认值&#xff0c;在后台调接口调到defaultValue这个值给select设置&#xff0c;但是不好使 解决方法直接用value 先加载选中的条目再加载默认值 初始的时候选中调模是空所以就会加载默认值 这样就解决了 但…

[Deep Learning]任意层cnn的matlab版本实现

之前实现了一层的卷积神经网络&#xff0c;又实现了两层的卷积神经网络&#xff0c;接下来把cnn扩展到任意层就不难了。 这难道就是传说中的“道生一&#xff0c;一生二&#xff0c;二生三&#xff0c;三生万物”么&#xff1f;&#xff1d;。&#xff1d; 代码还是在github上。…

python中倒着输出输入值_十五、深入Python输入和输出

「Author&#xff1a;By Runsen」在很多时候&#xff0c;你会想要让你的程序与用户(可能是你自己)交互。你会从用户那里得到输入&#xff0c;然后打印一些结果。我们可以使用input和print语句来完成这些功能。inputname input(your name:)gender input(you are a boy?(y/n))…

LeetCode meituan-003. 小美的跑腿代购(排序)

文章目录1. 题目2. 解题1. 题目 小美的一个兼职是美团的一名跑腿代购员&#xff0c;她有 n 个订单可以接&#xff0c;订单编号是 1~n &#xff0c; 但是因为订单的时效性&#xff0c;他只能选择其中 m 个订单接取&#xff0c;精明的小美当然希望自己总的获利是最大的&#xff…

win启动linux iso文件位置,安装Linux之后如何进入win系统?

可能你的安装过程有问题&#xff0c;我不知道你之前是如何安装的&#xff0c;我跟你简要的说一下&#xff0c;整个安装的过程吧。1.下载好Ubuntu后&#xff0c;将U盘制作成虚拟光驱。 推荐使用ultraiso软碟通&#xff0c;简单易使用&#xff0c;百度教程一大堆。2.使用分区助手…