zoukankan      html  css  js  c++  java
  • leetcode1109

     1 class Solution:
     2     def corpFlightBookings(self, bookings: 'List[List[int]]', n: int) -> 'List[int]':
     3         dic = dict()
     4         for begin,end,val in bookings:
     5             if begin in dic:
     6                 dic[begin] += val
     7             else:
     8                 dic[begin] = val
     9             if (end+1) in dic:
    10                 dic[end+1] -= val
    11             else:
    12                 dic[end+1] = -val
    13         res = [0] * n
    14         #print(dic)
    15         baseval = 0
    16         for i in range(n):
    17             if (i+1) in dic:
    18                 baseval += dic[(i+1)]
    19             res[i] = baseval
    20         return res

    思路:柱状图。

    baseval初始为0,遇到一个“起点”,就加一个正数,遇到一个“终点”,就加一个负数。注意这里要计算闭区间,因此这里的“终点”是原始数组的(终点+1)的索引。

    例如输入数据:[[1,2,10],[2,3,20],[2,5,25]],n=5,画图表示如下,是不是很有艺术感呢。

  • 相关阅读:
    Element节点
    Document节点
    ParentNode接口,ChildNode接口
    NodeList接口,HTMLCollection接口
    Node接口
    DOM概述
    Promise对象
    定时器
    IT常用日语
    配置JavaWeb开发环境
  • 原文地址:https://www.cnblogs.com/asenyang/p/11145985.html
Copyright © 2011-2022 走看看