2321
交换两个数组arr1, arr2的子数组,使max(sum(arr1), sum(arr2))最大化
想法1 (错误❌想法)
使用kadane算法找到arr1, arr2的最大和最小子数组分别进行交换,设maxsumarr1, minsumarr1, sum1, maxsumarr2, minsumarr2, sum2, 答案是max(sum1 - maxsumarr1 + 对应arr2的值,sum2 + maxsumarr1 - 对应arr2的值,sum1 - minsumarr1 + 对应arr2的值,sum1 + minsumarr1 - 对应arr2的值, ...)
错误点,arr1的最大值对应在arr2也有可能最大换之后可能没差,关键点注意错误
得注意arr1[i]
和 arr2[i]
的差值关系
想法2 (正确
使用kadane找到最大差值 arr1[i] - arr2[i]
, 这使sum2最大,同理使sum1也这么做再比较两者