首页 > 其他分享 >1109. 航班预订统计(中)

1109. 航班预订统计(中)

时间:2024-03-27 13:00:15浏览次数:22  
标签:25 10 int self nums 预订 航班 diff 1109

目录

题目

  • 这里有 n 个航班,它们分别从 1 到 n 进行编号。

    有一份航班预订表 bookings ,表中第 i 条预订记录 bookings[i] = [firsti, lasti, seatsi] 意味着在从 firsti 到 lasti (包含 firsti 和 lasti )的 每个航班 上预订了 seatsi 个座位。

    请你返回一个长度为 n 的数组 answer,里面的元素是每个航班预定的座位总数。

示例 1:

输入:bookings = [[1,2,10],[2,3,20],[2,5,25]], n = 5
输出:[10,55,45,25,25]
解释:
航班编号 1 2 3 4 5
预订记录 1 : 10 10
预订记录 2 : 20 20
预订记录 3 : 25 25 25 25
总座位数: 10 55 45 25 25
因此,answer = [10,55,45,25,25]

示例 2:

输入:bookings = [[1,2,10],[2,2,15]], n = 2
输出:[10,25]
解释:
航班编号 1 2
预订记录 1 : 10 10
预订记录 2 : 15
总座位数: 10 25
因此,answer = [10,25]

题解:差分数组

class Solution:
    class Difference:
    # 差分数组
        def __init__(self, nums: List[int]):
            assert len(nums) > 0
            self.diff = [0] * len(nums)
            # 根据初始数组构造差分数组
            self.diff[0] = nums[0]
            for i in range(1, len(nums)):
                self.diff[i] = nums[i] - nums[i - 1]

        # 给闭区间 [i, j] 增加 val(可以是负数)
        def increment(self, i: int, j: int, val: int) -> None:
            self.diff[i] += val
            if j + 1 < len(self.diff):
                self.diff[j + 1] -= val

        # 返回结果数组
        def result(self) -> List[int]:
            res = [0] * len(self.diff)
            # 根据差分数组构造结果数组
            res[0] = self.diff[0]
            for i in range(1, len(self.diff)):
                res[i] = res[i - 1] + self.diff[i]
            return res
    def corpFlightBookings(self, bookings: List[List[int]], n: int) -> List[int]:
        nums=[0]*n
        df= Solution.Difference(nums)
        for book in bookings:
            i,j,val=book[0],book[1],book[2]
            df.increment(i-1,j-1,val)#题目要求n从1开始,数组下标从0开始
        return df.result()

标签:25,10,int,self,nums,预订,航班,diff,1109
From: https://www.cnblogs.com/lushuang55/p/18098742

相关文章

  • 关于RK1808/RK1806和RV1109/RV1126 NPU升级方法
    一、注意事项本工程主要为RockchipNPU提供驱动、示例等。**RK3399Pro用户态的库及驱动不在本工程**,请参考:https://github.com/airockchip/RK3399Pro_npuRK3566/RK3568/RK3588/RV1103/RV1106请参考:https://github.com/rockchip-linux/rknpu2二、RKNNToolkit在使用RKNNA......
  • Node.js毕业设计飞机航班信息查询系统(Express)
    本系统(程序+源码)带文档lw万字以上  文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:在当今信息化、智能化的社会背景下,飞机航班信息查询系统成为了人们出行的重要工具。随着航空业的快速发展,航班数量不断增加,航线网络日益复杂,人们对航班信息......
  • 基于Java的厦门旅游电子商务预订系统(Vue.js+SpringBoot)
    目录一、摘要1.1项目介绍1.2项目录屏二、功能模块2.1景点类型模块2.2景点档案模块2.3酒店管理模块2.4美食管理模块三、系统设计3.1用例设计3.2数据库设计3.2.1学生表3.2.2学生表3.2.3学生表3.2.4学生表四、系统展示五、核心代码5.1新增景点类型5.2查......
  • 通过正则表达式匹配PNR编码中的航班信息
    PNR编辑内容主要由文本信息构,结果如下:一种方式是通过分隔符来提取信息,但效果是不理想的,因为格式会出现变化,推荐的方式是使用正则表达式,例如:1、通过正则获取航班号stringstrPattern=@"^[\s|\+|\-]?(?<Index>\d+)\.\s+\*?(?<FlightNo>\*?[A-Z0-9]{5,7})\s*(?<Level>[A-Z])\d......
  • UVA1109/Gym101175I Mummy Madness
    题意简述你初始在\((0,0)\),每个时刻你能向八连通格子移动或不移动。有\(n\)个怪物,怪物坐标已知,每个时刻怪物也能向八连通格子移动或不移动,而且会选择最终与你欧几里得距离最短的一种方案。求你在什么时刻会被怪物抓住(你和怪物在同一格子内),或报告无解。\(n\le10^5,|x_i|,|y......
  • CF1109E、CF1109F
    CF1109E很生气,写个唐诗题写了好久。感觉是看错题导致的。题面略。考虑这个直接做不太可做。因为不保证有逆元。但是它保证整除,考虑对模数分解成:\[mod=\prod_{i=1}^{cnt}p_i^{c_i}\]这种形式,那么我们如果可以整除可以直接维护对于\(p_i\)的\(c_i\)不是吗?所以我们......
  • R语言航班延误影响预测分析:lasso、决策树、朴素贝叶斯、QDA、LDA、缺失值处理、k折交
    全文链接:http://tecdat.cn/?p=32760原文出处:拓端数据部落公众号航班延误是航空公司、旅客和机场管理方面都面临的一个重要问题。航班延误不仅会给旅客带来不便,还会对航空公司和机场的运营产生负面影响。因此,对航班延误的影响因素进行预测分析,对于航空公司、旅客和机场管理方面都......
  • 基于SpringBoot+Vue的航班订票管理系统设计实现(源码+lw+部署文档+讲解等)
    (文章目录)前言:heartpulse:博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌:heartpulse:......
  • 篮球羽毛球乒乓球体育场馆预订小程序开发
    开发一款专业的小程序,用于多场馆场地的预定和管理,包括体育馆、羽毛球馆、兵乒球馆、篮球馆等各类场馆。此小程序旨在为场馆提供全方位的运营解决方案,并满足会员的不同需求。该小程序的核心功能特性包括:场馆管理:用户可以在小程序端轻松切换不同的预约场馆,方便快捷。场地管理:管理员可......
  • C0392 B 【1109 B组】预处理器 题解
    题意:求有多少个长度为\(n\)的数组\(a\)满足以下条件。条件一:\(l_{i}\lea_{i}\ler_{i}\)。条件二:\(a_{i}\)模\(2\)等于\(p_{i}\)。条件三:\(s\le\suma_{i}\let\)。求答案模\(mod\)的值,\(mod\)不一定是一个质数。数据范围:\(n\le13\)。又积累到一......