首页 > 试题广场 >

小O的子序列最值

[编程题]小O的子序列最值
  • 热度指数:275 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\,\,\,\,\,\,\,\,\,\,小O有两个长度为 n 的数组,现在她想从这两个数组中分别选出一个非空子序列,使得从第一个数组中选出的子序列的最大值不大于从第二个数组中选出的子序列的最小值。
\,\,\,\,\,\,\,\,\,\,小O想知道两个子序列的长度之和最大是多少。
\,\,\,\,\,\,\,\,\,\,如果数组 a 可以通过删除数组 b 中的若干(可能为零或全部)元素得到,则数组 a 是数组 b子序列

输入描述:
\,\,\,\,\,\,\,\,\,\,第一行输入一个整数 n\ (1 \leq n \leq 10^5 ) 代表数组的长度。
\,\,\,\,\,\,\,\,\,\,第二行输入 n 个整数 a_1,a_2,\dots,a_n\ (1 \leq a_i \leq 10^9 ) 代表第一个数组。
\,\,\,\,\,\,\,\,\,\,第三行输入 n 个整数 b_1,b_2,\dots,b_n\ ( 1 \leq b_i \leq 10^9 ) 代表第二个数组。


输出描述:
\,\,\,\,\,\,\,\,\,\,在一行上输出一个整数,表示两个子序列的长度之和最大是多少。如果无法选出满足条件的子序列,则输出 -1 。
示例1

输入

4
1 2 3 4
3 4 5 6

输出

7

说明

第一个子序列[1, 2, 3, 4],第二个子序列 [4, 5, 6],长度之和为 7。
排序 + 双指针
发表于 2025-10-27 16:22:24 回复(1)