我們有兩個長度相等且不為空的整型陣列 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...