Minimum Swaps To Make Sequences Increasing(动归

We have two integer sequencesAandBof the same non-zero length.

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

At the end of some number of swaps,AandBare both strictly increasing. (A sequence is_strictly increasing_if and only ifA[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.

Note:

  • A, Bare arrays with the same length, and that length will be in the range[1, 1000].

  • A[i], B[i]are integer values in the range[0, 2000]

    .

分析

3个case :

维持2个变量,换个数和不换个数,最后选个小的。1换不换都行 2 可以不换 3 必须换

https://leetcode.com/problems/minimum-swaps-to-make-sequences-increasing/discuss/163811/C++-Ultimately-Easy-Solution(Different-From-the-Official-Solution\

python

Last updated

Was this helpful?