文章目录

  • 1. 题目
  • 2. 解题

1. 题目

你驾驶出租车行驶在一条有 n 个地点的路上。
这 n 个地点从近到远编号为 1 到 n ,你想要从 1 开到 n ,通过接乘客订单盈利。
你只能沿着编号递增的方向前进,不能改变方向。

乘客信息用一个下标从 0 开始的二维数组 rides 表示,其中 rides[i] = [starti, endi, tipi] 表示第 i 位乘客需要从地点 starti 前往 endi ,愿意支付 tipi 元的小费。

每一位 你选择接单的乘客 i ,你可以 盈利 endi - starti + tipi 元。你同时 最多 只能接一个订单。

给你 n 和 rides ,请你返回在最优接单方案下,你能盈利 最多 多少元。

注意:你可以在一个地点放下一位乘客,并在同一个地点接上另一位乘客。

示例 1:
输入:n = 5, rides = [[2,5,4],[1,5,1]]
输出:7
解释:我们可以接乘客 0 的订单,获得 5 - 2 + 4 = 7 元。示例 2:
输入:n = 20, rides = [[1,6,1],[3,10,2],[10,12,3],[11,12,2],[12,15,2],[13,18,1]]
输出:20
解释:我们可以接以下乘客的订单:
- 将乘客 1 从地点 3 送往地点 10 ,获得 10 - 3 + 2 = 9 元。
- 将乘客 2 从地点 10 送往地点 12 ,获得 12 - 10 + 3 = 5 元。
- 将乘客 5 从地点 13 送往地点 18 ,获得 18 - 13 + 1 = 6 元。
我们总共获得 9 + 5 + 6 = 20 元。提示:
1 <= n <= 10^5
1 <= rides.length <= 3 * 10^4
rides[i].length == 3
1 <= starti < endi <= n
1 <= tipi <= 10^5

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

2. 解题

  • 先初始化每个位置到达的情况 [(起点,收入), …] 可以到达同一点的订单
  • 遍历每个位置,可以不选择到达该位置的订单,最大收入是前一个点的
  • 选择到达该点的订单,遍历所有订单 取最大的
class Solution:def maxTaxiEarnings(self, n: int, rides: List[List[int]]) -> int:earn = [0 for _ in range(n+1)]events = [[] for _ in range(n+1)]for r in rides:events[r[1]].append((r[0], r[1]-r[0]+r[2]))for i in range(n+1):earn[i] = earn[i-1]for start, money in events[i]:earn[i] = max(earn[i], earn[start]+money)return earn[-1]

600 ms 35.3 MB Python3


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 2008. 出租车的最大盈利(DP)相关推荐

  1. LeetCode 486. 预测赢家(博弈DP)

    文章目录 1. 题目 2. 解题 1. 题目 给定一个表示分数的非负整数数组. 玩家 1 从数组任意一端拿取一个分数,随后玩家 2 继续从剩余数组任意一端拿取分数,然后玩家 1 拿,-- . 每次一个 ...

  2. 2008.8 广州XXX公司dp地图标记查询项目

    2008.8 广州XXX公司dp地图标记查询项目 开发人员: 许羽逢 梁文彬 李金生 李飞鹏

  3. LeetCode 91. Decode Ways--动态规划DP的Python和Java解法

    题目地址: LeetCode 动态规划(Dynamic programming)系列题目:LeetCode 动态规划(Dynamic programming)系列题目 A message contai ...

  4. LeetCode 309: 一个很清晰的DP解题思路

    问题来源 题目来源链接见下方: https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/descript ...

  5. LeetCode 1187. 使数组严格递增(DP)*

    文章目录 1. 题目 2. 解题 1. 题目 给你两个整数数组 arr1 和 arr2,返回使 arr1 严格递增所需要的最小「操作」数(可能为 0). 每一步「操作」中,你可以分别从 arr1 和 ...

  6. LeetCode 956. 最高的广告牌(DP)

    文章目录 1. 题目 2. 解题 1. 题目 你正在安装一个广告牌,并希望它高度最大. 这块广告牌将有两个钢制支架,两边各一个.每个钢支架的高度必须相等. 你有一堆可以焊接在一起的钢筋 rods. 举 ...

  7. LeetCode 1563. 石子游戏 V(DP)

    文章目录 1. 题目 2. 解题 2.1 区间DP 1. 题目 几块石子 排成一行 ,每块石子都有一个关联值,关联值为整数,由数组 stoneValue 给出. 游戏中的每一轮: Alice 会将这行 ...

  8. LeetCode 1140. 石子游戏 II(DP)*

    文章目录 1. 题目 2. 解题 1. 题目 亚历克斯和李继续他们的石子游戏.许多堆石子 排成一行,每堆都有正整数颗石子 piles[i].游戏以谁手中的石子最多来决出胜负. 亚历克斯和李轮流进行,亚 ...

  9. LeetCode 546. 移除盒子(DP)*

    文章目录 1. 题目 2. 解题 1. 题目 给出一些不同颜色的盒子,盒子的颜色由数字表示,即不同的数字表示不同的颜色. 你将经过若干轮操作去去掉盒子,直到所有的盒子都去掉为止. 每一轮你可以移除具有 ...

最新文章

  1. fail2ban使用教程
  2. 处理get中的中文乱码情况
  3. IgniteMe debug 寒假逆向生涯(2/100)
  4. 华南理工大学2016年数学分析高等代数考研试题参考解答
  5. Lua介绍极其在C#项目中的应用
  6. AppCan入门教程
  7. 同台加载_跨年官宣 | “爷青回”我只服湖南卫视跨年 李易峰陈伟霆马天宇“古剑三侠”同台...
  8. js基础-(二)-类和面向对象
  9. iphone7 无法连接计算机看照片,iphone7连接电脑没反应怎么解决
  10. xctf攻防世界 MISC高手进阶区 适合作为桌面、stage1
  11. 「武汉理工大学 软件工程复习」第三章 | 软件需求
  12. SMMS:一个不错的免费图床
  13. CC2530的中断操作----按键控制led灯亮灭
  14. strtol strtoll strtoul strtoull应用
  15. C语言简单的双人小游戏
  16. 西安华为OD面试经验(德科)
  17. 读懂python中的self
  18. C语言算平均数,让用户输入一系列的正整数,输入-1表示输入结束,算出这些数字的平均数
  19. 【map】百度地图离线化V1.3
  20. 老罗的获奖感言及经验转载

热门文章

  1. Python 第三方模块之 imgaug (图像增强)
  2. 解决:(1062, Duplicate entry '2019-08-30' for key 'rdate')
  3. 在Python2.7下如何安装TA-lib库
  4. mysql 查看表v空间自增涨_MySQL InnoDB表空间加密
  5. 挖矿为什么要用显卡_Conflux显卡挖矿收益很高吗?挖矿指南与核算手册
  6. 汇编指令的学习1——ARM汇编的特点
  7. android gb2312 utf-8,不同编码页面之间用form传值出现乱码问题解决方案 utf-8 到 gb2312...
  8. leafLet入门教程兼leafLet API中文文档参考
  9. 017-通过govendor管理依赖包
  10. URLEncoder.encode问题