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

差分数组题目

差分数组题目

  • 航班预订统计
  • 拼车

差分数组的主要适用场景是频繁对原始数组的某个区间的元素进行增减。

航班预订统计

链接在这里插入图片描述

class Solution {
    public int[] corpFlightBookings(int[][] bookings, int n) {
        //对区间加法 用差分数组
        int[]diff=new int[n+2];
        for(int[]e:bookings){
            int left=e[0];
            int right=e[1];
            int val=e[2];
            //在[left,right]区间上+val,diff[left]+val,diff[right+1]-val
            diff[left]+=val;
            diff[right+1]-=val;
        }
        int[] answer=new int[n];
        answer[0]=diff[1];
        for(int i=1;i<n;i++){
            answer[i]=answer[i-1]+diff[i+1];
        }
        return answer;
    }
}

拼车

链接在这里插入图片描述

class Solution {
    public boolean carPooling(int[][] trips, int capacity) {
        //先找出最大的to
        int maxTo=0;
        for(int[]e:trips){
            maxTo=Math.max(maxTo,e[2]);
        }
        //一共有[0,maxTo]个地方 写成[1,maxTo+1]编号
        int[]diff=new int[maxTo+3];
        for(int[]e:trips){
            int left=e[1]+1;
            int right=e[2];//注意这里不用+1,因为在e[2]+1位置下车,相当暂时没人了
            int val=e[0];
            //在编号为[left,right]上加val
            diff[left]+=val;
            diff[right+1]-=val;
        }
        //还原 看看有没有>capacity的
        int cur=0;
        for(int i=1;i<=maxTo+1;i++){
            cur+=diff[i];
            if(cur>capacity){
                return false;
            }
        }
        return true;
    }
}

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

相关文章:

  • 机器学习(吴恩达)
  • 有关MyBatis的缓存(一级缓存和二级缓存)
  • 【第四节】windows sdk编程:windows 中的窗口
  • 基于Python+SQLite实现校园信息化统计平台
  • java校验String是否符合时间格式 yyyy-MM-dd HH:mm:ss
  • vs2022用git插件重置--删除更改(--hard)后恢复删除的内容
  • Qt 6.6.1 中 QPixmap::grabWindow() 的用法与替代方案
  • Spring之生命周期Bean的生成过程
  • python-leetcode-K 和数对的最大数目
  • 【Godot4.3】RenderingServer总结
  • c++介绍运算符重载九
  • vscode接入DeepSeek 免费送2000 万 Tokens 解决DeepSeek无法充值问题
  • 5秒学会excel中序号列自动增加,不是拖动,图解加说明,解决序号自增多了手拖太累
  • VSTO(C#)Excel开发5:调整表格到一页
  • 【ELK】ElasticSearch 集群常用管理API操作
  • ChebyKAN0、ChebyKAN1 网络阅读
  • 常用Kotlin方法
  • jmeter接口测试(三)
  • 前端 - uniapp - - 滚动容器scroll-view实现横向滚动
  • BFS最短路径(十六)127. 单词接龙 困难