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

合肥网站建设方案书网站联盟广告

合肥网站建设方案书,网站联盟广告,wordpress 女性,网站内容计划【LetMeFly】1094.拼车:优先队列 力扣题目链接:https://leetcode.cn/problems/car-pooling/ 车上最初有 capacity 个空座位。车 只能 向一个方向行驶(也就是说,不允许掉头或改变方向) 给定整数 capacity 和一个数组…

【LetMeFly】1094.拼车:优先队列

力扣题目链接:https://leetcode.cn/problems/car-pooling/

车上最初有 capacity 个空座位。车 只能 向一个方向行驶(也就是说,不允许掉头或改变方向

给定整数 capacity 和一个数组 trips ,  trip[i] = [numPassengersi, fromi, toi] 表示第 i 次旅行有 numPassengersi 乘客,接他们和放他们的位置分别是 fromi 和 toi 。这些位置是从汽车的初始位置向东的公里数。

当且仅当你可以在所有给定的行程中接送所有乘客时,返回 true,否则请返回 false

 

示例 1:

输入:trips = [[2,1,5],[3,3,7]], capacity = 4
输出:false

示例 2:

输入:trips = [[2,1,5],[3,3,7]], capacity = 5
输出:true

 

提示:

  • 1 <= trips.length <= 1000
  • trips[i].length == 3
  • 1 <= numPassengersi <= 100
  • 0 <= fromi < toi <= 1000
  • 1 <= capacity <= 105

方法一:优先队列

首先二话不说对trips按“上车地点”为依据从小到大排个序。

接着创建一个优先队列,用于存放“已上车的人”。优先队列的排序依据是“先下车的人优先”。

使用一个变量记录当前车上的人数,遍历trips数组:

让优先队列中,不晚于此位置的人下车;

让这批人上车。

期间若出现超载的情况则返回false,否则返回true

  • 时间复杂度 O ( n log ⁡ n ) O(n\log n) O(nlogn),其中 n = l e n ( t r i p s ) n=len(trips) n=len(trips)
  • 空间复杂度 O ( n ) O(n) O(n)

AC代码

C++
class Solution {
public:bool carPooling(vector<vector<int>>& trips, int capacity) {sort(trips.begin(), trips.end(), [](const vector<int>& a, const vector<int>& b) {return a[1] < b[1];});int nowPeopleCnt = 0;auto cmp = [](const pair<int, int>& a, const pair<int, int>& b) {return a.second > b.second;};priority_queue<pair<int, int>, vector<pair<int, int>>, decltype(cmp)> nowPeople(cmp);for (vector<int>& trip : trips) {int num = trip[0], from = trip[1], to = trip[2];while (nowPeople.size() && nowPeople.top().second <= from) {nowPeopleCnt -= nowPeople.top().first;nowPeople.pop();}nowPeopleCnt += num;if (nowPeopleCnt > capacity) {return false;}nowPeople.push({num, to});}return true;}
};
Python
# from typing import List
# import heapqclass Solution:def carPooling(self, trips: List[List[int]], capacity: int) -> bool:trips.sort(key=lambda x: x[1])nowPeopleCnt = 0nowPeople = []for num, from_, to in trips:while nowPeople and nowPeople[0][0] <= from_:nowPeopleCnt -= nowPeople[0][1]heapq.heappop(nowPeople)nowPeopleCnt += numif nowPeopleCnt > capacity:return Falseheapq.heappush(nowPeople, (to, num))return True

同步发文于CSDN,原创不易,转载经作者同意后请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/134751973

http://www.dinnco.com/news/22555.html

相关文章:

  • 凡科网站产品导航怎么做全网营销推广平台
  • 网站下载织梦模板seo公司推广宣传
  • 丽水百度seo论坛seo设置
  • 国际物流公司网站云搜索app下载
  • 好的交互网站seo网站推广优化
  • logo注册网站贵州网站seo
  • 做物流有哪些网站网络营销的主要内容包括
  • 建设银行网站-个人业务建立自己的网站
  • 东莞外贸网站的推广开发网站建设
  • 网站访客分析搜索引擎排名优化seo课后题
  • 用wordpress建立学校网站出售网站平台
  • 怎么查看网站是否做静态化处理推广赚钱的项目
  • 网站权重优化安卓优化大师app下载安装
  • wordpress 评论不了seo站外优化平台
  • 建立网站要怎么做网站收录量是什么意思
  • 自己做外贸 建一个网站更先进的seo服务
  • 一个域名可以绑定几个网站网站推广的具体方案
  • 青海建设厅质检站网站游戏推广话术
  • 网站开发分销系统北京网站推广服务
  • 福建富通建设有限公司网站发稿
  • 大陆怎么做香港网站最新营销模式
  • 微信小网站制作搜索引擎广告图片
  • 滨州淘宝网站建设需要优化的地方
  • 用axuer 做网站产品原型优化设计六年级上册数学答案
  • 菏泽做网站的公司seo排名优化点击软件有哪些
  • 广东营销式网站北京优化互联网公司
  • 速成网站怎么做西安seo技术培训班
  • 如何做简单网站网站建设公司哪家好?
  • app网站开发协议如何做一个自己的电商平台
  • 第三方商城网站建设新站如何快速收录