LeetCode 1029. 两地调度(贪心)
文章目录
- 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. 两地调度(贪心)相关推荐
- 2022-6-5 供暖器,最小差,两地调度,峰与谷
1. 供暖器 [双指针or二分] 冬季已经来临. 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖. 在加热器的加热半径范围内的每个房屋都可以获得供暖. 现在,给出位于一条水平线上的房屋 hou ...
- leetcode学习记录_贪心
贪心的特点就是不断求得局部最优解 然后用局部最优解求得全局最优解 55. 跳跃游戏 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 . 数组中的每个元素代表你在该位置可以跳跃的最大长度 ...
- LeetCode(1029)——两地调度(JavaScript)
公司计划面试 2N 人.第 i 人飞往 A 市的费用为 costs[i][0],飞往 B 市的费用为 costs[i][1]. 返回将每个人都飞到某座城市的最低费用,要求每个城市都有 N 人抵达. 示 ...
- leetcode1029. 两地调度(贪心算法)
公司计划面试 2N 人.第 i 人飞往 A 市的费用为 costs[i][0],飞往 B 市的费用为 costs[i][1]. 返回将每个人都飞到某座城市的最低费用,要求每个城市都有 N 人抵达. 示 ...
- Leetcode刷题:贪心算法
文章目录 一.算法思想 二.分配问题 2.1 Leetcode 455 2.1.1 题目描述 2.1.2 输入输出格式 2.1.3求解思路 2.1.4 代码示例(C++) 2.2 Leetcode 1 ...
- 列车调度(贪心):单机调度问题贪心算法
单机调度问题贪心算法 #题目:火车站的列车调度铁轨的结构如下图所示. 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道.每趟列车从入口可以选择任意一条轨道 ...
- leetcode刷题:贪心算法08(加油站)
134. 加油站 力扣题目链接 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升. 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 co ...
- 170. Leetcode 135. 分发糖果 (贪心算法-两个维度权衡题目)
这道题目一定是要确定一边之后,再确定另一边,例如比较每一个孩子的左边,然后再比较右 边,如果两边一起考虑一定会顾此失彼. 先确定右边评分大于左边的情况(也就是从前向后遍历) 此时局部最优:只要右边评分 ...
- LeetCode 881. 救生艇(贪心,双指针)
1. 题目 第 i 个人的体重为 people[i],每艘船可以承载的最大重量为 limit. 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit. 返回载到每一个人所需的最小船数.( ...
最新文章
- 为SQL Server 2005启用对 4 GB 以上物理内存的支持
- Access update的时候传递参数的顺序
- 【错误记录】Android Studio 编译信息输出乱码
- 各大网站CSS代码初始化集合
- 用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识
- 真狠!10000mAh超大电池手机发布,真的神机...
- Spring Cloud Bus + RabbitMq 自动刷新
- 看完这篇 Linux 的基本操作你就会了!
- 这条命令帮我在一分钟内修改了200台远程服务器密码!
- 国密SM2系列算法验证工具
- 【文献阅读未遂】Understanding data storage and ingestion for large-scale deep recommendation model training
- 计算机网络常用知识总结!
- 移动端页面性能优化方案
- 记一次k8s pod频繁重启的优化之旅
- 一战赚了1090亿,恐怖的张一鸣!
- Java 中XO 的概念
- EventBridge 实践场景:流计算 Oceanus 告警消息实时推送
- 树、二叉树、满二叉树、完全二叉树概念分清
- Java基于网络爬虫的股票信息收集软件
- Vue项目打包部署总结
热门文章
- python实现哈希表
- python给定一个整数n、判断n是否为素数_输入一个大于3的整数n,判断它是否为素数...
- python库--pandas--Series.str--字符串处理
- Caused by: java.lang.ClassNotFoundException: Cannot find class: User
- 【转】构建微服务架构的最佳实践2/3
- Windows Phone 8安装包中的文件和独立存储区中的文件访问
- vc调用matlab生成的dll实例
- gdb调试时,Program received signal SIGPIPE, Broken pipe.
- hdfs为什么要用block以及block大小的设置
- boost库中mutex、condition_variable与mutex::scoped_lock联合使用实现线程之间的通信