资讯专栏INFORMATION COLUMN

5118-航班预订统计

fsmStudy / 2372人阅读

摘要:前言的航班预订统计这里有个航班,它们分别从到进行编号。此时第行数据表示起点是,终点是,座位数是。此时实现代码航班预订统计处理每一条预订记录给对应航班编号增加座位数

前言

Weekly Contest 144的 航班预订统计:

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

我们这儿有一份航班预订表,表中第 i 条预订记录 bookings[i] = [i, j, k] 意味着我们在从 ij 的每个航班上预订了 k 个座位。

请你返回一个长度为 n 的数组 answer,按航班编号顺序返回每个航班上预订的座位数。

示例:

输入:bookings = [[1,2,10],[2,3,20],[2,5,25]], n = 5
输出:[10,55,45,25,25]

提示:

1 <= bookings.length <= 20000

1 <= bookings[i][0] <= bookings[i][1] <= n <= 20000

1 <= bookings[i][2] <= 10000

解题思路

本题题目的思路其实比较简答:

读取出每条预定记录bookings[i] = [i, j, k]的起点i,终点j和座位数k

处于起点ij之间的result[n]需要增加对应的座位数k,即若i<=n+1<=k(因为n为数组下标索引,所以需要n+1),则result[n]+=k

下面会通过题目的示例分析:

输入:bookings = [[1,2,10],[2,3,20],[2,5,25]], n = 5
输出:[10,55,45,25,25]

运算过程

1行数据[1,2,10]表示起点是1,终点是2,座位数是10。所以result[0]+=10result[1]+=10。此时

result[0]=10
result[1]=10
result[2]=0
result[3]=0
result[4]=0

2行数据[2,3,20]表示起点是2,终点是3,座位数是20。所以result[1]+=20result[2]+=20。此时

result[0]=10
result[1]=30
result[2]=20
result[3]=0
result[4]=0

3行数据[2,5,25]表示起点是2,终点是5,座位数是15。所以result[1]+=25result[2]+=25result[3]+=25result[4]+=25。此时

result[0]=10
result[1]=55
result[2]=45
result[3]=25
result[4]=25

实现代码
    /**
     * 5118. 航班预订统计
     * @param bookings
     * @param n
     * @return
     */
    public int[] corpFlightBookings(int[][] bookings, int n) {
        int[] result = new int[n]; 
        for (int i = 0; i < bookings.length; i++) { // 处理每一条预订记录
            int start = bookings[i][0];
            int end = bookings[i][1];
            int seat = bookings[i][2];
            for (int j = start - 1; j < end; j++) { // 给对应航班编号增加座位数
                result[j] += seat;
            }
        }
        return result;
    }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/75202.html

相关文章

  • 使用 Resilience4j 框架实现重试机制

    摘要:重试会增加的响应时间。提供了辅助方法来为包含远程调用的函数式接口或表达式创建装饰器。如果我们想创建一个装饰器并在代码库的不同位置重用它,我们将使用。 在本文中,我们将从快速介绍 Resilience4j 开始,然后深入探讨其 Retry 模块。我们将了解何时、如何使用它,以及它提供的功能。在此过程中,我们还将学...

    番茄西红柿 评论0 收藏2637
  • 一直爆料OpenAI「草莓」的账号,竟然是个智能体?Agent Q横空出世,AI界新秀or营销大师

    当炒作出了「泼天的流量」,已经没人关心产品厉不厉害了。近日,OpenAI 的秘密项目「Q*」引起了业内人士的广泛关注。上个月,代号为「草莓(Strawberry)」的项目曝光,据说它是「Q*」的延续,并可能具备高级推理能力。而就在最近几天,关于这个项目,网络上又来了几波「鸽死人不偿命」的传播。尤其是一个「草莓哥」的账号,不间断地宣传,给人期望又让人失望。网友们对Agent Q背后的技术充满了好奇。...

    UCloud小助手 评论0 收藏0
  • Node.js 多模块共享数据库连接

    摘要:本文介绍了在项目中不同模块之间共享数据库连接的方法。专门负责和数据库交互,用户和航班这两个模块都需要连接数据库,一开始我的代码是这样的引用连接数据库引用连接数据库且不说这种写法一点都不,这种方式本身就是错误的。 本文介绍了在 Node.js 项目中不同模块之间共享数据库连接的方法。 这个标题本身就是一个命题,因为使用默认方式的情况下,一个 Node.js 应用里的各个模块都是共享的同一...

    zhouzhou 评论0 收藏0
  • 通熟易懂的设计模式(二)

    摘要:提供酒店相关的接口返回该时间段有效的酒店提供航班相关的接口返回该时间段有效的航班提供一个旅行对外的接口,一次返回酒店和航班信息调用旅行外观模式享元模式享元模式主要用于减少创建对象的数量,以减少内存占用和提高性能。 组合模式(Composite pattern) 组合模式看起来就像对象组的树形结构,一个对象里面包含一个或一组其他的对象。它是属于结构型模式。例如,一个公司包括很多个部门,每...

    daydream 评论0 收藏0

发表评论

0条评论

fsmStudy

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<