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

拼车(1094)

1094. 拼车 - 力扣(LeetCode)

解法:

class Solution {
public:bool carPooling(vector<vector<int>>& trips, int capacity) {uint32_t passenger_cnt = 0;//将原数据按照from排序auto func_0 = [](vector<int> & i1, vector<int> & i2) {return i1[1] < i2[1];};sort(trips.begin(), trips.end(), func_0);//入队列的数据按照to排序auto func_1 = [](pair<int, int> & i1, pair<int, int> & i2) {return i1.second > i2.second;};vector<pair<int, int>> v;//给优先队列预先分配内存v.reserve(trips.size());//priority_queue 只需要记录 count 和 离开的时间priority_queue<pair<int, int> , vector<pair<int, int>>, decltype(func_1)> q( func_1, v);for (int i = 0; i < trips.size(); ++i) {//如果队列的top()数据小于trips[i][1],说明在trips[i][1]上车前top()已经下车while (!q.empty() && (q.top().second <= trips[i][1])){passenger_cnt -= q.top().first;q.pop();}passenger_cnt += trips[i][0];if (passenger_cnt >  capacity) {return false;}q.emplace(trips[i][0], trips[i][2]);}return true;}
};

总结:

时间复杂度O(NlogN),空间复杂度O(N),算法细节如代码注释

http://www.lryc.cn/news/529196.html

相关文章:

  • 基于Python的人工智能患者风险评估预测模型构建与应用研究(下)
  • < OS 有关 > Android 手机 SSH 客户端 app: connectBot
  • 向量和矩阵算法笔记
  • uniapp使用uni.navigateBack返回页面时携带参数到上个页面
  • Python 梯度下降法(二):RMSProp Optimize
  • Android Studio 正式版 10 周年回顾,承载 Androider 的峥嵘十年
  • sem_wait的概念和使用案列
  • 集合的奇妙世界:Python集合的经典、避坑与实战
  • 专业视角深度解析:DeepSeek的核心优势何在?
  • MySQL 索引存储结构
  • 【ComfyUI专栏】如何使用Git命令行安装非Manager收录节点
  • python算法和数据结构刷题[1]:数组、矩阵、字符串
  • 数据分析系列--④RapidMiner进行关联分析(案例)
  • 1/30每日一题
  • vim的多文件操作
  • 设计转换Apache Hive的HQL语句为Snowflake SQL语句的Python程序方法
  • CAPL与外部接口
  • 无公网IP 外网访问 本地部署夫人 hello-algo
  • 实验四 XML
  • Autosar-Os是怎么运行的?(内存保护)
  • 题单:冒泡排序1
  • 多目标优化策略之一:非支配排序
  • Go学习:字符、字符串需注意的点
  • Linux文件原生操作
  • 解决Oracle SQL语句性能问题(10.5)——常用Hint及语法(7)(其他Hint)
  • JavaScript系列(50)--编译器实现详解
  • 大数据相关职位 职业进阶路径
  • 基础项目实战——学生管理系统(c++)
  • C++,STL,【目录篇】
  • 【Rust自学】15.3. Deref trait Pt.2:隐式解引用转化与可变性