当前位置: 首页 > news >正文

阿里云网站建设部署与发布试题答案wordpress自动插件下载

阿里云网站建设部署与发布试题答案,wordpress自动插件下载,大连模板网站制作哪家好,装wordpressLeetCode-2391. 收集垃圾的最少总时间【数组 字符串 前缀和】 题目描述:解题思路一:处理垃圾和路程单独计算。解题思路二:逆向思维,计算多走的路解题思路三:只记录,当前t需要计算几次 题目描述:…

LeetCode-2391. 收集垃圾的最少总时间【数组 字符串 前缀和】

  • 题目描述:
  • 解题思路一:处理垃圾和路程单独计算。
  • 解题思路二:逆向思维,计算多走的路
  • 解题思路三:只记录,当前t需要计算几次

题目描述:

给你一个下标从 0 开始的字符串数组 garbage ,其中 garbage[i] 表示第 i 个房子的垃圾集合。garbage[i] 只包含字符 ‘M’ ,‘P’ 和 ‘G’ ,但可能包含多个相同字符,每个字符分别表示一单位的金属、纸和玻璃。垃圾车收拾 一 单位的任何一种垃圾都需要花费 1 分钟。

同时给你一个下标从 0 开始的整数数组 travel ,其中 travel[i] 是垃圾车从房子 i 行驶到房子 i + 1 需要的分钟数。

城市里总共有三辆垃圾车,分别收拾三种垃圾。每辆垃圾车都从房子 0 出发,按顺序 到达每一栋房子。但它们 不是必须 到达所有的房子。

任何时刻只有 一辆 垃圾车处在使用状态。当一辆垃圾车在行驶或者收拾垃圾的时候,另外两辆车 不能 做任何事情。

请你返回收拾完所有垃圾需要花费的 最少 总分钟数。

示例 1:

输入:garbage = [“G”,“P”,“GP”,“GG”], travel = [2,4,3]
输出:21
解释:
收拾纸的垃圾车:

  1. 从房子 0 行驶到房子 1
  2. 收拾房子 1 的纸垃圾
  3. 从房子 1 行驶到房子 2
  4. 收拾房子 2 的纸垃圾
    收拾纸的垃圾车总共花费 8 分钟收拾完所有的纸垃圾。
    收拾玻璃的垃圾车:
  5. 收拾房子 0 的玻璃垃圾
  6. 从房子 0 行驶到房子 1
  7. 从房子 1 行驶到房子 2
  8. 收拾房子 2 的玻璃垃圾
  9. 从房子 2 行驶到房子 3
  10. 收拾房子 3 的玻璃垃圾
    收拾玻璃的垃圾车总共花费 13 分钟收拾完所有的玻璃垃圾。
    由于没有金属垃圾,收拾金属的垃圾车不需要花费任何时间。
    所以总共花费 8 + 13 = 21 分钟收拾完所有垃圾。

示例 2:

输入:garbage = [“MMM”,“PGM”,“GP”], travel = [3,10]
输出:37
解释:
收拾金属的垃圾车花费 7 分钟收拾完所有的金属垃圾。
收拾纸的垃圾车花费 15 分钟收拾完所有的纸垃圾。
收拾玻璃的垃圾车花费 15 分钟收拾完所有的玻璃垃圾。
总共花费 7 + 15 + 15 = 37 分钟收拾完所有的垃圾。

提示:

2 <= garbage.length <= 105
garbage[i] 只包含字母 ‘M’ ,‘P’ 和 ‘G’ 。
1 <= garbage[i].length <= 10
travel.length == garbage.length - 1
1 <= travel[i] <= 100

解题思路一:处理垃圾和路程单独计算。

  1. 所有垃圾事一定要处理完的!for g in garbage: ans += len(g)
  2. 反向遍历garbage数组,得到每个垃圾车需要到达的最远距离,即可计算出所需路程时间。
class Solution:def garbageCollection(self, garbage: List[str], travel: List[int]) -> int:n = len(garbage)ans = 0for g in garbage:ans += len(g)G, M, P = 0, 0, 0for i in range(len(garbage) - 1, 0, -1):if 'G' in garbage[i]:G = ians += sum(travel[:G])breakfor i in range(len(garbage) - 1, 0, -1):if 'M' in garbage[i]:M = ians += sum(travel[:M])breakfor i in range(len(garbage) - 1, 0, -1):if 'P' in garbage[i]:P = ians += sum(travel[: P])breakreturn ans# 简化
class Solution:def garbageCollection(self, garbage: List[str], travel: List[int]) -> int:n = len(garbage)ans = sum(map(len, garbage))for c in "GMP":for i, g in enumerate(reversed(garbage)):if c in g:ans += sum(travel[:n-i-1])breakreturn ans

时间复杂度:O(n)
空间复杂度:O(1)

解题思路二:逆向思维,计算多走的路

class Solution:def garbageCollection(self, garbage: List[str], travel: List[int]) -> int:ans = sum(map(len, garbage)) + sum(travel) * 3for c in "MPG":for g, t in zip(reversed(garbage), reversed(travel)):if c in g:breakans -= t  # 没有垃圾 c,多跑了return ans

时间复杂度:O(n)
空间复杂度:O(1)

解题思路三:只记录,当前t需要计算几次

在这里插入图片描述

class Solution:def garbageCollection(self, garbage: List[str], travel: List[int]) -> int:ans = len(garbage[0])seen = set()for g, t in zip(reversed(garbage), reversed(travel)):seen.update(g)ans += len(g) + t * len(seen)return ans

时间复杂度:O(n)
空间复杂度:O(n)


创作不易,观众老爷们请留步… 动起可爱的小手,点个赞再走呗 (๑◕ܫ←๑)
欢迎大家关注笔者,你的关注是我持续更博的最大动力


原创文章,转载告知,盗版必究



在这里插入图片描述


在这里插入图片描述
♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠

http://www.yayakq.cn/news/716684/

相关文章:

  • 58同城淄博网站建设公司注册地址变更需要哪些资料
  • 商城网站建设要求广告设计制作公司经营范围
  • 手机网站制作费用多少网站 内页
  • 网站开发与推广计划书湖南郴州建设局网站
  • app开发公司倒闭了怎么办seo外链友情链接
  • 建设工程网站教程网文网站开发方案
  • 在线教育网站开发方案凤蝶直播
  • 图书馆网站建设请示电商主题wordpress
  • div做网站下载莱芜都市网app
  • 虚拟主机怎么做网站珠海建设网站的公司简介
  • 申请了域名先做网站还是先备案网站建设的产品类型是什么
  • 电子商务网站的功能包括房地产开发公司网站
  • 网站开发与设计 信科怎样做淘宝网站
  • 国家建设公债拍卖网站哪有培训seo
  • 增加网站产品做截图网官网
  • 学院网站群建设方案设计类专业网站
  • 网站推广的目的有哪些丹徒网站建设方案
  • 服装网站建设规划书需求分析汽车租赁企业网站源码
  • 深圳个人网站设计做网站黑吃黑是什么罪
  • 南宁网站建设牛易飞网络营销推广的标准
  • 怎样做阿里巴巴网站的店招成都平台网站建设
  • 什么样的网站需要icp经营性备案百度小说排名
  • 企业把网站关闭原因甘肃网站建设项目
  • 南阳做玉器网站seo广告投放是什么意思
  • 无锡锡山住房和城乡建设局网站广州网站注销备案
  • 网站做弹窗重庆做网站熊掌号
  • 杭州企业seo网站优化唐山网站建设哪家好
  • 怀宁县住房和建设局网站怎么用模板建网站
  • 山西建站管理系统开发社交app网站开发
  • 苏州外贸网站建设公司价格做二手车的网站