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

LeetCode每日一题 | LeetCode-1094.拼车

LeetCode-1094.拼车

    • 题目描述
    • 问题分析
    • 程序代码

题目描述

原题链接

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

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

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

问题分析

由于车的位置范围为[0, 1000]。因此,我们可以使用一个长度为 1000 的数组来记录每个位置的乘客数量。

先遍历trips数组,利用差分数组的思想,修改某段区间。即若有 c 个乘客在 a 点上车,在 b 点下车,要对区间[a, b)整体进行加 c 的操作,利用差分数组只需要进行nums[a] += cnums[b] -= c操作即可。

求完差分数组后,对差分数组进行前缀和计算,就可以得到每个站点的乘客数量,与车的最大容量进行比较便可得到最终答案。

程序代码

class Solution {
public:
    bool carPooling(vector<vector<int>>& trips, int capacity) {
        vector<int> nums(1010, 0);
        for(auto t : trips) {
            nums[t[1]+1] += t[0];
            nums[t[2]+1] -= t[0];
        }

        for(int i = 1; i <= 1000; i++) {
            nums[i] += nums[i-1];
            if(nums[i] > capacity)  return false;
        }

        return true;
    }
};

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

相关文章:

  • Vue计算属性computed
  • conda创建 、查看、 激活、删除 python 虚拟环境
  • 使用 unicorn 和 capstone 库来模拟 ARM Thumb 指令的执行(一)
  • 今日 AI 简报 | 开源 RAG 文本分块库、AI代理自动化软件开发框架、多模态统一生成框架、在线图像背景移除等
  • OCR识别铁路电子客票
  • 除了 Mock.js,前端还有更方便的 Mock 数据工具吗?
  • 栈实现队列,力扣
  • ESP32-Web-Server 实战编程-通过网页控制设备的 GPIO
  • MVCC-
  • 【.NET全栈】.net的微软API接口与.NET框架源码
  • LLM推理部署(三):一个强大的LLM生态系统GPT4All
  • AI - FlowField(流场寻路)
  • 2023年第十二届数学建模国际赛小美赛B题工业表面缺陷检测求解分析
  • 外包干了2年,技术退步明显。。。
  • solidity案例详解(五)能源电力竞拍合约
  • FDM3D打印系列——天秤座黄金圣斗士模型制作全过程视频
  • 微服务的流量管理-服务网格
  • 使用Draw.io制作泳道图
  • CSS3 修改滚动条样式
  • ThreadLocal的理解和使用
  • IntelliJ IDEA 之初体验(上)
  • [LeetCode周赛复盘] 第 374 场周赛20231203
  • 图像生成MaaS服务
  • chatgpt prompt提示词
  • abapgit 安装及使用
  • Redis集合对象