文章目录

  • 1. 题目
  • 2. 贪心

1. 题目

公司计划面试 2N 人。第 i 人飞往 A 市的费用为 costs[i][0],飞往 B 市的费用为 costs[i][1]。

返回将每个人都飞到某座城市的最低费用,要求每个城市都有 N 人抵达。

示例:
输入:[[10,20],[30,200],[400,50],[30,20]]
输出:110
解释:
第一个人去 A 市,费用为 10。
第二个人去 A 市,费用为 30。
第三个人去 B 市,费用为 50。
第四个人去 B 市,费用为 20。
最低总费用为 10 + 30 + 50 + 20 = 110,每个城市都有一半的人在面试。提示:
1 <= costs.length <= 100
costs.length 为偶数
1 <= costs[i][0], costs[i][1] <= 1000

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/two-city-scheduling
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 贪心

  • 将数据按照 A-B 的花费差值排序(小到大),前半部分去A,后半部分去B

A1−B1=C1,A2−B2=C2{ {A_1} - {B_1} = {C_1}, {A_2} - {B_2} = {C_2} }A1​−B1​=C1​,A2​−B2​=C2​

C1<=C2{ {C_1} < = {C_2} }C1​<=C2​

A1−B1<=A2−B2⇒A1+B2<=A2+B1{{A_1} - {B_1} < = {A_2} - {B_2} \Rightarrow {A_1} + {B_2} < = {A_2} + {B_1}} A1​−B1​<=A2​−B2​⇒A1​+B2​<=A2​+B1​

  • 所以1去A,2去B
class Solution {public:int twoCitySchedCost(vector<vector<int>>& costs) {int n = costs.size();vector<pair<int,int>> v(n);int i, money = 0;for(i = 0; i < n; ++i){v[i].first = costs[i][0]-costs[i][1];v[i].second = i;}sort(v.begin(),v.end(),[](auto &a, auto &b){return a.first < b.first;});for(i = 0; i < n/2; ++i)money += costs[v[i].second][0];for(i = n/2; i < n; ++i)money += costs[v[i].second][1];return money;}
};

LeetCode 1029. 两地调度(贪心)相关推荐

  1. 2022-6-5 供暖器,最小差,两地调度,峰与谷

    1. 供暖器 [双指针or二分] 冬季已经来临. 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖. 在加热器的加热半径范围内的每个房屋都可以获得供暖. 现在,给出位于一条水平线上的房屋 hou ...

  2. leetcode学习记录_贪心

    贪心的特点就是不断求得局部最优解 然后用局部最优解求得全局最优解 55. 跳跃游戏 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 . 数组中的每个元素代表你在该位置可以跳跃的最大长度 ...

  3. LeetCode(1029)——两地调度(JavaScript)

    公司计划面试 2N 人.第 i 人飞往 A 市的费用为 costs[i][0],飞往 B 市的费用为 costs[i][1]. 返回将每个人都飞到某座城市的最低费用,要求每个城市都有 N 人抵达. 示 ...

  4. leetcode1029. 两地调度(贪心算法)

    公司计划面试 2N 人.第 i 人飞往 A 市的费用为 costs[i][0],飞往 B 市的费用为 costs[i][1]. 返回将每个人都飞到某座城市的最低费用,要求每个城市都有 N 人抵达. 示 ...

  5. Leetcode刷题:贪心算法

    文章目录 一.算法思想 二.分配问题 2.1 Leetcode 455 2.1.1 题目描述 2.1.2 输入输出格式 2.1.3求解思路 2.1.4 代码示例(C++) 2.2 Leetcode 1 ...

  6. 列车调度(贪心):单机调度问题贪心算法

    单机调度问题贪心算法 #题目:火车站的列车调度铁轨的结构如下图所示. 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道.每趟列车从入口可以选择任意一条轨道 ...

  7. leetcode刷题:贪心算法08(加油站)

    134. 加油站 力扣题目链接 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升. 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 co ...

  8. 170. Leetcode 135. 分发糖果 (贪心算法-两个维度权衡题目)

    这道题目一定是要确定一边之后,再确定另一边,例如比较每一个孩子的左边,然后再比较右 边,如果两边一起考虑一定会顾此失彼. 先确定右边评分大于左边的情况(也就是从前向后遍历) 此时局部最优:只要右边评分 ...

  9. LeetCode 881. 救生艇(贪心,双指针)

    1. 题目 第 i 个人的体重为 people[i],每艘船可以承载的最大重量为 limit. 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit. 返回载到每一个人所需的最小船数.( ...

最新文章

  1. 为SQL Server 2005启用对 4 GB 以上物理内存的支持
  2. Access update的时候传递参数的顺序
  3. 【错误记录】Android Studio 编译信息输出乱码
  4. 各大网站CSS代码初始化集合
  5. 用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识
  6. 真狠!10000mAh超大电池手机发布,真的神机...
  7. Spring Cloud Bus + RabbitMq 自动刷新
  8. 看完这篇 Linux 的基本操作你就会了!
  9. 这条命令帮我在一分钟内修改了200台远程服务器密码!
  10. 国密SM2系列算法验证工具
  11. 【文献阅读未遂】Understanding data storage and ingestion for large-scale deep recommendation model training
  12. 计算机网络常用知识总结!
  13. 移动端页面性能优化方案
  14. 记一次k8s pod频繁重启的优化之旅
  15. 一战赚了1090亿,恐怖的张一鸣!
  16. Java 中XO 的概念
  17. EventBridge 实践场景:流计算 Oceanus 告警消息实时推送
  18. 树、二叉树、满二叉树、完全二叉树概念分清
  19. Java基于网络爬虫的股票信息收集软件
  20. Vue项目打包部署总结

热门文章

  1. python实现哈希表
  2. python给定一个整数n、判断n是否为素数_输入一个大于3的整数n,判断它是否为素数...
  3. python库--pandas--Series.str--字符串处理
  4. Caused by: java.lang.ClassNotFoundException: Cannot find class: User
  5. 【转】构建微服务架构的最佳实践2/3
  6. Windows Phone 8安装包中的文件和独立存储区中的文件访问
  7. vc调用matlab生成的dll实例
  8. gdb调试时,Program received signal SIGPIPE, Broken pipe.
  9. hdfs为什么要用block以及block大小的设置
  10. boost库中mutex、condition_variable与mutex::scoped_lock联合使用实现线程之间的通信