leecode 801 使序列遞增的最小交換次數

2021-10-12 16:23:05 字數 860 閱讀 9816

我們有兩個長度相等且不為空的整型陣列 a 和 b 。

我們可以交換 a[i] 和 b[i] 的元素。注意這兩個元素在各自的序列中應該處於相同的位置。

在交換過一些元素之後,陣列 a 和 b 都應該是嚴格遞增的(陣列嚴格遞增的條件僅為a[0] < a[1] < a[2] < … < a[a.length - 1])。

給定陣列 a 和 b ,請返回使得兩個陣列均保持嚴格遞增狀態的最小交換次數。假設給定的輸入總是有效的。

示例:輸入: a = [1,3,5,4], b = [1,2,3,7]

輸出: 1

解釋:交換 a[3] 和 b[3] 後,兩個陣列如下:

a = [1, 3, 5, 7] , b = [1, 2, 3, 4]

兩個陣列均為嚴格遞增的

class

solution

if(a[i]

> b[i -1]

&& b[i]

> a[i -1]

)}return

min(dp[n -1]

[0], dp[n -1]

[1])

;//返回最小結果

}};

在這個過程中,其實我們最終只是為了得到最後的兩個數值。因此我們可以復用int,這樣就可以省去陣列。

class

solution

if(a[i-1]

< b[i]

&& b[i-1]

< a[i]

) n1 = n2;

s1 = s2;

}return

min(n1, s1);}

};

801 使序列遞增的最小交換次數

我們有兩個長度相等且不為空的整型陣列 a 和 b 我們可以交換 a i 和 b i 的元素。注意這兩個元素在各自的序列中應該處於相同的位置。在交換過一些元素之後,陣列 a 和 b 都應該是嚴格遞增的 陣列嚴格遞增的條件僅為a 0 a 1 a 2 a a.length 1 給定陣列 a 和 b 請返回...

801 使序列遞增的最小交換次數

我們有兩個長度相等且不為空的整型陣列 nums1 和 nums2 在一次操作中,我們可以交換 nums1 i 和 nums2 i 的元素。例如,如果 nums1 1,2,3,8 nums2 5,6,7,4 你可以交換 i 3 處的元素,得到 nums1 1,2,3,4 和 nums2 5,6,7,8...

Leetcode 801 使序列遞增的最小交換次數

回溯搜尋 author niuxy date 2020 7 12 6 41 下午 description 回溯法,暴力搜尋 public int minswap0 int a,int b minswap a,b,0,0 return an int an integer.max value publi...