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