文章目录

  • 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. 树的存储结构以及实现代码
  2. 大叔公开课~微服务与持久集成
  3. 自动部署 php,Jenkins实现PHP的自动部署
  4. HDU 3952 Fruit Ninja
  5. jQuery基础总结!!!
  6. C语言:用条件运算符的嵌套完成此题。学习成绩=90分的学生用A表示,70-89的学生用B表示,60-79的学生用表示,低于60分的学生用D表示
  7. 知行EDI系统-入门篇
  8. Arduino循迹小车教程三----测试小车篇
  9. oracle数据库脱敏代码
  10. 企业如何布局数字化营销,打造私域运营闭环实现增长?
  11. 零基础如何学习PLC
  12. 总结:pytorch对应版本安装
  13. RationalDMIS 2020定制报告(EXCEL)
  14. Mac 无法打开淘宝,天猫,京东等
  15. Vue脚手架安装流程详解
  16. 基于大型数字视频监控系统解决方案
  17. 国庆节期间创作博文,获得国庆专属勋章。国庆节快乐!!!
  18. 定时启动你的Android App
  19. SUSE LINUX 10.0 软硬件的安装和设置
  20. 联想服务器rd640性能,联想RD640处理器性能测试

热门文章

  1. ideaspringboot项目上传服务器_PHP中使用 TUS 协议来实现可恢复文件上传
  2. obs可以装手机吗?_原神PC和手机数据互通吗 PC和手机可以一起玩吗
  3. 三维点云目标提取总结(续)
  4. 4、requests-基础
  5. 点击链接如何直接跳转到相对应的聊天窗口
  6. BJFU 质数相关
  7. PHP list的赋值
  8. POJ 3041 Asteroids (对偶性,二分图匹配)
  9. 单片机外围模块漫谈之二,如何提高ADC转换精度
  10. Binder远程转本地