Advertisement

LeetCode 1029. 两地调度 —— 题解及代码实现 (采用 multimap 可重复键、pair 固定键值)

阅读量:

一、题目


企业拟安排 2N 名应聘者参加面试。对于第 i 位应聘者而言,前往 A 市所需的费用为 costs[i][0],而前往 B 市的费用则为 costs[i][1]

请计算出将所有人员派遣至各自城市的最低总费用,且需满足每个城市恰好有 N 人抵达**。**

示例:

复制代码
    **输入:****输出:****解释:**

提示:

  1. 1 <= costs.length <= 100
  2. costs.length 的数值为偶数
  3. 1 <= costs[i][0], costs[i][1] <= 1000

二、题解思路

  • 解题策略: 采用multimap数据结构来处理该问题,其优势在于允许重复的键值存在。核心方法是对每位人员前往A市与B市所产生的费用进行比较,计算两者的差额,并将该差额作为键,对应的人员编号作为值存入multimap中。由于multimap具备自动排序功能,键值会按照升序排列。因此,只需从multimap中选取前N个元素对应前往A市的费用,以及后N个元素对应前往B市的费用,最终即可得出总费用的最小值。
    • 注意事项1: 在操作multimap时需注意,与map不同的是它不支持通过下标方式进行元

全部评论 (0)

还没有任何评论哟~