这里有 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]

提示:

  • 1 <= n <= 2 * 10^4
  • 1 <= bookings.length <= 2 * 10^4
  • bookings[i].length == 3
  • 1 <= firsti <= lasti <= n
  • 1 <= seatsi <= 10^4

分析:

方法1:朴素解法

直接遍历相加,没什么好说的。

时间复杂度:O(n*2)         最坏情况每次都遍历n次
空间复杂度:O(n)

class Solution {public int[] corpFlightBookings(int[][] bookings, int n) {//结果数组int[] res = new int[n];//遍历相加for(int[] booking: bookings){for(int i = booking[0]-1; i < booking[1]; ++i){res[i] += booking[2];}}return res;}
}

方法2:差分数组+前缀和

差分就是讲第一个索引加上目标值,最后一个索引+1 减去目标值,这样得到的数组再做前缀和就可以得到结果集。那 bookings = [[1,2,10],[2,3,20],[2,5,25]],举例:

  • 航班编号              1     2    3    4    5
  • 差分数组 1 :      10   0   -10   0   0
  • 差分数组 2 :      10  20  -10 -20  0
  • 差分数组 3 :      10  45  -10 -20  0  (-25)
  • 求前缀和:          10  55  45  25  25

时间复杂度:O(m+n)         m 为数组 bookings 的长度,n 为给定 n
空间复杂度:O(n)

class Solution {public int[] corpFlightBookings(int[][] bookings, int n) {//结果数组int[] res = new int[n];//差分for(int[] booking: bookings){res[booking[0]-1] += booking[2];if(booking[1] < n){res[booking[1]] -= booking[2];}}//前缀和for(int i = 1; i < n; ++i){res[i] += res[i-1];}return res;}
}

题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/corporate-flight-bookings

JAVA练习203-航班预订统计相关推荐

  1. 【每日一题】航班预订统计

    1109. 航班预订统计

  2. 1109. 航班预订统计

    1109. 航班预订统计 这里有 n 个航班,它们分别从 1 到 n 进行编号. 有一份航班预订表 bookings ,表中第 i 条预订记录 bookings[i] = [firsti, lasti ...

  3. LeetCode1109之航班预订统计(相关话题:差分数组)

    题目描述 这里有 n 个航班,它们分别从 1 到 n 进行编号. 有一份航班预订表 bookings ,表中第 i 条预订记录 bookings[i] = [firsti, lasti, seatsi ...

  4. 模拟卷Leetcode【普通】1109. 航班预订统计

    1109. 航班预订统计 这里有 n 个航班,它们分别从 1 到 n 进行编号. 有一份航班预订表 bookings ,表中第 i 条预订记录 bookings[i] = [firsti, lasti ...

  5. 值得一刷系列,航班预订统计拼车

    前言 前几天,有一哥们发我一个LeetCode题目链接,紧跟着附上了自己的提交记录,一个2ms,另一个1451ms- 我一看,这题有点意思啊,不同的思路竟然时间差这么多.搞它. 题目描述 这里有n个航 ...

  6. C++Python描述 LeetCode 1109. 航班预订统计

    C++&Python描述 LeetCode 1109. 航班预订统计   大家好,我是亓官劼(qí guān jié ),在公众号.CSDN.GitHub.B站.华为开发者论坛等平台分享一些技 ...

  7. 「每日一题」航班预订统计

    这是 LeetCode 上2021-8-31的每日一题:「1109. 航班预订统计」 1. 题目描述 这里有n个航班,它们分别从1到n进行编号. 有一份航班预订表bookings,表中第i条预订记录b ...

  8. 【1109. 航班预订统计】

    leetcode力扣刷题打卡 题目:1109. 航班预订统计 描述:这里有 n 个航班,它们分别从 1 到 n 进行编号. 有一份航班预订表 bookings ,表中第 i 条预订记录 booking ...

  9. LeetCode 1109. 航班预订统计

    1109. 航班预订统计 [差分+前缀和] class Solution {// 差分+前缀和 3:47. 4public int[] corpFlightBookings(int[][] booki ...

  10. LeetCode.1109. 航班预订统计

    LeetCode.1109. 航班预订统计 难度:medium  思路: 差分数组,注意细节 diff[0] = nums[0]; 代码: class Solution {public int[] c ...

最新文章

  1. RHEL 5服务篇—部署DNS域名解析服务(一)BIND软件
  2. 'Push segues can only be used when the source controller is managed by an instance of UINavigationC
  3. python百度翻译包_python百度翻译移动端
  4. Bootstrap 环境安装
  5. net start mysql 发生系统错误2 系统找不到指定的文件
  6. 浙江省经信委与新华三签署战略合作协议
  7. 证明kruskal算法求解图的最小生成树具有贪心选择性质_将并查集应用在图论中的最小生成树算法——Kruskal...
  8. 平衡二叉树AVL删除
  9. 软件测试常见笔试面试题(一)
  10. DevExpress 创建EXCEL
  11. 基于Open XML 导出数据到Excel
  12. 装上WPS后导入Excel 的代码出错
  13. 原子哥家的 SIM800L透传模式配置
  14. 苹果手机 计算机 错误,苹果手机的计算器连1+2+3都算不对!原因太尴尬!
  15. 英语语法最终珍藏版笔记-8虚拟语气
  16. 可见光通信在室内定位及IoT上的应用展示
  17. 外星人入侵小游戏十二章十三章实现
  18. 扫雷游戏(基础版本)
  19. 刘鹏飞_2022_reStructured Pre-training
  20. MySQL 基础——MySQL 起步

热门文章

  1. 绿色版eclipse
  2. 面向流行性疾病科普的用户问题理解与答案内容组织
  3. web自动化测试(一) 介绍 及 Xpath,Css 定位元素
  4. php导出超过30W的大数据量excel表格,快速完成,测试20秒内
  5. sketchup转stl_Sketchup最好用的减面优化和格式转换插件!
  6. win10系统镜像Hash值验证
  7. noMeiryoUI——Windows修改系统默认字体的一个好用工具
  8. 网易全面复盘直播答题,剖析产品架构的难点与坑
  9. 优波尔:QQ几个跳转的API接口
  10. 电能质量监测平台95概率大值统计流程设计优化