输入: nums1 = [1,3,5,4], nums2 = [1,2,3,7]
输出: 1
解释:
交换 A[3] 和 B[3] 后,两个数组如下:
A = [1, 3, 5, 7] , B = [1, 2, 3, 4]
两个数组均为严格递增的。
输入: nums1 = [0,3,5,8,9], nums2 = [2,1,4,6,9]
输出: 1
动态规划:
首先,构建一个dp[i][j]
,其中:
- i:表示所在nums1和nums2的位置index;
- j:只有两类值,0表示不交换;1表示交换;
【综上所述】
dp[i][0] 表示在nums1[i]和nums2[i]位置处,如果不交换位置的话,当前累积的操作次数。
dp[i][1] 表示在nums1[i]和nums2[i]位置处,如果交换位置的话,当前累积的操作次数。
首先,我们来初始化第1个位置,如果不进行交换,那么累积操作次数等于0,即:dp[0][0]=0;如果进行交换,那么累积操作次数等于1,即:dp[0][1]=1;
大神题解: