关注
T4
T2的plus版,思想是一样的。两个长为n的数组,同位置元素可以交换。要求两数组各自的差值数组之和加起来最大,求最小的交换次数。首先注意我们的主要目标是差值数组之和最大,交换次数最小只是其次。同样使用动态规划,sums_n, sums_y分别表示末尾元素保持原位置和交换的情况下最大的差值数组之和,cnts_n, cnts_y对应二者的交换次数。设join_n, join_y分别是当前元素保持原位置和交换的情况下和上一个元素的差值之和,那么根据上一个元素是否交换,有转移方程
sums_n = max(sums_n + join_n, sums_y + join_y)
sums_y = max(sums_n + join_y, sums_y + join_n)
而cnts_n, cnts_y跟着赋值即可,如果括号里二者相等,在优先选择交换次数较小的。
注意sums_n/sums_y逻辑上同时计算,使用临时变量避免前者的计算影响后者。
时间复杂度O(n),空间复杂度O(1)。
查看原帖
点赞 3
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 实习要如何选择和准备? #
16507次浏览 303人参与
# 打工人的工作餐日常 #
28041次浏览 249人参与
# 美团求职进展汇总 #
1652337次浏览 14897人参与
# 我在牛爱网找对象 #
159958次浏览 1216人参与
# 字节求职进展汇总 #
714686次浏览 7232人参与
# 职业发展规划如何回答 #
29375次浏览 162人参与
# 面试等了一周没回复,还有戏吗 #
100081次浏览 918人参与
# 比亚迪秋招开啦,你打算投递吗? #
66826次浏览 561人参与
# 运营人的第一份offer应该如何选 #
127378次浏览 1053人参与
# 没有实习经历还能找到好工作吗? #
6599次浏览 38人参与
# 稳定和高薪机械人更看重哪个? #
426854次浏览 5313人参与
# 正在实习的你,几点下班 #
105036次浏览 755人参与
# 你的工资什么时候发? #
20617次浏览 162人参与
# 牛友们的论文几号送审 #
20286次浏览 546人参与
# 满分简历要如何准备? #
21662次浏览 340人参与
# 投格力的你,拿到offer了吗? #
64105次浏览 504人参与
# 你上一天班会花多少钱 #
39565次浏览 225人参与
# 应届生应该先就业还是先择业 #
85704次浏览 515人参与
# 科大讯飞工作体验 #
15920次浏览 49人参与
# TCL求职进展汇总 #
102984次浏览 594人参与