给你两个整数数组,第一个数组 nums1 长度为 n,以及第二个数组 nums2 长度为 n + 1。
你的目标是使用 最少 的操作次数将 nums1 转换为 nums2。
你可以执行以下操作 任意 次,每次选择一个下标 i:
nums1[i] 增加 1。nums1[i] 减少 1。nums1[i] 追加 到数组的 末尾 。返回将 nums1 转换为 nums2 所需的 最少 操作次数。
示例 1:
输入: nums1 = [2,8], nums2 = [1,7,3]
输出: 4
解释:
| 步骤 | i |
操作 | nums1[i] |
更新后的 nums1 |
|---|---|---|---|---|
| 1 | 0 | 追加 | - | [2, 8, 2] |
| 2 | 0 | 减少 | 减少到 1 | [1, 8, 2] |
| 3 | 1 | 减少 | 减少到 7 | [1, 7, 2] |
| 4 | 2 | 增加 | 增加到 3 | [1, 7, 3] |
因此,经过 4 次操作后,nums1 转换为 nums2。
示例 2:
输入: nums1 = [1,3,6], nums2 = [2,4,5,3]
输出: 4
解释:
| 步骤 | i |
操作 | nums1[i] |
更新后的 nums1 |
|---|---|---|---|---|
| 1 | 1 | 追加 | - | [1, 3, 6, 3] |
| 2 | 0 | 增加 | 增加到 2 | [2, 3, 6, 3] |
| 3 | 1 | 增加 | 增加到 4 | [2, 4, 6, 3] |
| 4 | 2 | 减少 | 减少到 5 | [2, 4, 5, 3] |
因此,经过 4 次操作后,nums1 转换为 nums2。
示例 3:
输入: nums1 = [2], nums2 = [3,4]
输出: 3
解释:
| 步骤 | i |
操作 | nums1[i] |
更新后的 nums1 |
|---|---|---|---|---|
| 1 | 0 | 增加 | 增加到 3 | [3] |
| 2 | 0 | 追加 | - | [3, 3] |
| 3 | 1 | 增加 | 增加到 4 | [3, 4] |
因此,经过 3 次操作后,nums1 转换为 nums2。
提示:
1 <= n == nums1.length <= 105nums2.length == n + 11 <= nums1[i], nums2[i] <= 105