给你两个长度为 n
的整数数组 nums1
和 nums2
。你可以对 nums1
执行任意次下述的 拆分合并操作:
nums1[L..R]
。nums1[0..L-1]
(如果 L = 0
则为空)和后缀 nums1[R+1..n-1]
(如果 R = n - 1
则为空)。返回将 nums1
转换为 nums2
所需的 最少拆分合并操作 次数。
示例 1:
输入: nums1 = [3,1,2], nums2 = [1,2,3]
输出: 1
解释:
[3]
(L = 0
, R = 0
);剩余数组为 [1,2]
。[3]
插入到末尾;数组变为 [1,2,3]
。示例 2:
输入: nums1 = [1,1,2,3,4,5], nums2 = [5,4,3,2,1,1]
输出: 3
解释:
0 - 2
处的 [1,1,2]
;剩余 [3,4,5]
;将 [1,1,2]
插入到位置 2
,得到 [3,4,1,1,2,5]
。1 - 3
处的 [4,1,1]
;剩余 [3,2,5]
;将 [4,1,1]
插入到位置 3
,得到 [3,2,5,4,1,1]
。0 - 1
处的 [3,2]
;剩余 [5,4,1,1]
;将 [3,2]
插入到位置 2
,得到 [5,4,3,2,1,1]
。
提示:
2 <= n == nums1.length == nums2.length <= 6
-105 <= nums1[i], nums2[i] <= 105
nums2
是 nums1
的一个 排列。