关注
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
相关推荐
09-17 10:53
四川大学 C++ 点赞 评论 收藏
分享


点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 26届秋招公司红黑榜 #
6787次浏览 22人参与
# 实习必须要去大厂吗? #
145272次浏览 1530人参与
# 智慧芽求职进展汇总 #
13308次浏览 94人参与
# 校招泡的最久的公司是哪家? #
2553次浏览 13人参与
# 度小满求职进展汇总 #
8892次浏览 48人参与
# 你的mentor是什么样的人? #
1649次浏览 9人参与
# 未岚大陆求职进展汇总 #
23280次浏览 108人参与
# 你觉得mentor喜欢什么样的实习生 #
7307次浏览 229人参与
# 职场新人体验 #
92776次浏览 636人参与
# 没有家庭托举的我是怎么找工作的 #
9103次浏览 140人参与
# 入职第一天,你准备什么时候下班 #
84907次浏览 465人参与
# 技术岗笔试题求解 #
95015次浏览 1101人参与
# 从哪些方向判断这个offer值不值得去? #
4642次浏览 80人参与
# 求职低谷期你是怎么度过的 #
3774次浏览 74人参与
# 最难的技术面是哪家公司? #
54360次浏览 891人参与
# 秋招想进国企该如何准备 #
97262次浏览 487人参与
# 面试紧张时你会有什么表现? #
932次浏览 18人参与
# 机械人的工作环境真的很差吗 #
24444次浏览 119人参与
# 你有哪些缓解焦虑的方法? #
36794次浏览 835人参与
# 跳槽时有那些注意事项 #
105709次浏览 567人参与
# 独居后,你的生活是更好了还是更差了? #
27736次浏览 263人参与
# 工作压力大怎么缓解 #
117307次浏览 1108人参与