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

Leetcode1094. 拼车

Every day a Leetcode

题目来源:1094. 拼车

解法1:差分数组

在这里插入图片描述

对于本题,设 a[i] 表示车行驶到位置 i 时车上的人数。我们需要判断是否所有 a[i] 都不超过 capacity。

trips[i] 相当于把 a 中下标从 fromi 到 toi−1 的数都增加 numPassengersi。这正好可以用上面讲的差分数组解决。

代码:

/*
 * @lc app=leetcode.cn id=1094 lang=cpp
 *
 * [1094] 拼车
 */

// @lc code=start
class Solution
{
public:
    bool carPooling(vector<vector<int>> &trips, int capacity)
    {
        vector<int> diff(1001, 0);
        for (vector<int> &trip : trips)
        {
            int numPassengers = trip[0], from = trip[1], to = trip[2];
            diff[from] += numPassengers;
            diff[to] -= numPassengers;
        }
        int passengers = 0;
        for (int &d : diff)
        {
            passengers += d;
            if (passengers > capacity)
                return false;
        }
        return true;
    }
};
// @lc code=end

结果:

在这里插入图片描述

复杂度分析:

时间复杂度:O(n+U),其中 n 是数组 trips 的长度,U=max(toi)。

空间复杂度:O(U),U=max(toi)。


http://www.kler.cn/a/156214.html

相关文章:

  • 从0开始学习Linux——文件管理
  • vue中如何关闭eslint检测?
  • 微信小程序=》基础=》常见问题=》性能总结
  • 【深度解析】CSS工程化全攻略(1)
  • 机器学习——损失函数、代价函数、KL散度
  • 高频 SQL 50 题(基础版)连接部分
  • 泊车功能专题介绍 ———— 记忆泊车评价规程(征求意见稿)
  • 某60区块链安全之Create2实战二学习记录
  • CRM在设备制造行业的应用,优化资源配置
  • 字符串冲刺题
  • 【STM32】STM32学习笔记-STM32简介(02)
  • Elasticsearch SQL插件调研与问题整理
  • go语言学习-包管理
  • Linux驱动开发学习笔记2《LED驱动开发试验》
  • STM32的HAL库串口编程
  • 提权(1), 脱裤, dirty-cow 脏牛提权
  • Oracle-CDB容器数据库修改service_names踩坑
  • 每周一算法:背包问题(二)完全背包
  • 致我那为数不多的粉丝
  • 分布式系统中最基础的 CAP 理论及其应用
  • Springboot 使用 阿里的 druid 连接池 启用 wall sql防火墙的情况下怎么支持多sql同时执行?
  • 使用pandas将字符串格式数据转换为单独的行
  • 继阿里云、滴滴、语雀后,腾讯视频也出现重大系统故障
  • Leetcode2661. 找出叠涂元素
  • Android Audio实战——音频属性设置(二十二)
  • 根据关键词写作文章的软件,根据标题写作文章的工具