801. Minimum Swaps To Make Sequences Increasing 为使两个数组严格递增,所需要的最小交换次数

Posted 排序和map

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了801. Minimum Swaps To Make Sequences Increasing 为使两个数组严格递增,所需要的最小交换次数相关的知识,希望对你有一定的参考价值。

[抄题]:

We have two integer sequences A and B of the same non-zero length.

We are allowed to swap elements A[i] and B[i].  Note that both elements are in the same index position in their respective sequences.

At the end of some number of swaps, A and B are both strictly increasing.  (A sequence is strictly increasing if and only if A[0] < A[1] < A[2] < ... < A[A.length - 1].)

Given A and B, return the minimum number of swaps to make both sequences strictly increasing.  It is guaranteed that the given input always makes it possible.

Example:
Input: A = [1,3,5,4], B = [1,2,3,7]
Output: 1
Explanation: 
Swap A[3] and B[3].  Then the sequences are:
A = [1, 3, 5, 7] and B = [1, 2, 3, 4]
which are both strictly increasing.

 [暴力解法]:

时间分析:

空间分析:

 [优化后]:

时间分析:

空间分析:

[奇葩输出条件]:

[奇葩corner case]:

[思维问题]:

对dp很恐惧,不知道交换以后应该怎么检查

[英文数据结构或算法,为什么不用别的数据结构或算法]:

[一句话思路]:

[输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):

[画图]:

[一刷]:

[二刷]:

[三刷]:

[四刷]:

[五刷]:

  [五分钟肉眼debug的结果]:

[总结]:

[复杂度]:Time complexity: O() Space complexity: O()

[算法思想:递归/分治/贪心]:

[关键模板化代码]:

[其他解法]:

[Follow Up]:

[LC给出的题目变变变]:

 [代码风格] :

以上是关于801. Minimum Swaps To Make Sequences Increasing 为使两个数组严格递增,所需要的最小交换次数的主要内容,如果未能解决你的问题,请参考以下文章

[LeetCode] Minimum Swaps To Make Sequences Increasing 使得序列递增的最小交换

[LeetCode] 1963. Minimum Number of Swaps to Make the String Balanced

力扣 每日一题 801. 使序列递增的最小交换次数难度:困难,rating: 2066(动态规划)

力扣 每日一题 801. 使序列递增的最小交换次数难度:困难,rating: 2066(动态规划)

HackerRank - Minimum Swaps 2

Leetcode5760. 构成交替字符串需要的最小交换次数