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

Leetcode—1094.拼车【中等】

2023每日刷题(四十七)

Leetcode—1094.拼车

在这里插入图片描述

模拟实现代码

bool carPooling(int** trips, int tripsSize, int* tripsColSize, int capacity) {
    int arr[1003] = {0};
    int numPassenger = 0, fromidx = 0, toidx = 0;
    for(int i = 0; i < tripsSize; i++) {
        numPassenger = trips[i][0];
        fromidx = trips[i][1];
        toidx = trips[i][2];
        for(int j = fromidx; j < toidx; j++) {
            arr[j] += numPassenger;
            if(arr[j] > capacity) {
                return false;
            }
        }
    }
    return true;
}

运行结果

在这里插入图片描述

差分数组算法思想

参考自灵茶山艾府
在这里插入图片描述

差分数组实现代码

bool carPooling(int** trips, int tripsSize, int* tripsColSize, int capacity) {
    int d[1003] = {0};
    int idxmax = 0;
    int numPassenger = 0, fromidx = 0, toidx = 0;
    for(int i = 0; i < tripsSize; i++) {
        numPassenger = trips[i][0];
        fromidx = trips[i][1];
        toidx = trips[i][2];
        d[fromidx] += numPassenger;
        d[toidx] -= numPassenger;
        idxmax = idxmax > toidx ? idxmax: toidx;
    }
    int s = 0;
    for(int i = 0; i <= idxmax; i++) {
        s += d[i];
        if(s > capacity) {
            return false;
        }
    }
    return true;
}

运行结果

在这里插入图片描述

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!


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

相关文章:

  • C语言——I /深入理解指针(二)
  • 数字图像处理(实践篇) 十六 基于分水岭算法的图像分割
  • flutter-一个可以输入的数字增减器
  • php获取过去一段的时间范围
  • 【CTA认证】Android8实现android6以下的应用运行时也要申请权限
  • InsCode实践分享
  • 《LeetCode力扣练习》代码随想录——哈希表(赎金信---Java)
  • complex rsa
  • PMIC : 一颗芯片解决N多问题
  • 【C++】string类模拟实现过程中值得注意的点
  • LeetCode | 965. 单值二叉树
  • FWT+高维前缀和:Gym - 103202M
  • scrapy的建模及管道的使用
  • Spring Boot 3.2 新特性之 JdbcClient
  • 【Linux】awk 使用
  • 最小栈,力扣
  • FAT32文件系统详解
  • 【论文阅读】ActiveNeRF:通过不确定性估计候选新视图
  • 第三节:提供者、消费者、Eureka
  • 天鹅湖国家旅游度假区 | 展柜OLED透明屏:创新展示提升互动体验