资讯专栏INFORMATION COLUMN

5118-航班预订统计

fsmStudy / 2299人阅读

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

前言

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
  • Node.js 多模块共享数据库连接

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

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

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

    daydream 评论0 收藏0
  • 屏蔽一些国外或国内5118、桔子SEO的蜘蛛

    摘要:下面介绍屏蔽国外一些网站分析平台的蜘蛛的方法。有些网站蜘蛛爬起来比百度谷歌还要勤快,频繁的爬取会增加服务器的一定负荷,对于服务器性能吃紧的小伙伴非常适用。下面介绍屏蔽国外一些网站分析平台的蜘蛛的方法。有些网站蜘蛛爬起来比百度、谷歌还要勤快,频繁的爬取会增加服务器的一定负荷,对于服务器性能吃紧的小伙伴非常适用。国外常见非搜索引擎蜘蛛列表:SemrushBotDotBotMegaIndex.ru...

    Tecode 评论0 收藏0

发表评论

0条评论

fsmStudy

|高级讲师

TA的文章

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