LeetCode in Kotlin

1109. Corporate Flight Bookings

Medium

There are n flights that are labeled from 1 to n.

You are given an array of flight bookings bookings, where bookings[i] = [firsti, lasti, seatsi] represents a booking for flights firsti through lasti (inclusive) with seatsi seats reserved for each flight in the range.

Return an array answer of length n, where answer[i] is the total number of seats reserved for flight i.

Example 1:

Input: bookings = [[1,2,10],[2,3,20],[2,5,25]], n = 5

Output: [10,55,45,25,25]

Explanation:

Flight labels: 1 2 3 4 5

Booking 1 reserved: 10 10

Booking 2 reserved: 20 20

Booking 3 reserved: 25 25 25 25

Total seats: 10 55 45 25 25 Hence, answer = [10,55,45,25,25]

Example 2:

Input: bookings = [[1,2,10],[2,2,15]], n = 2

Output: [10,25]

Explanation:

Flight labels: 1 2

Booking 1 reserved: 10 10

Booking 2 reserved: 15

Total seats: 10 25 Hence, answer = [10,25]

Constraints:

Solution

class Solution {
    fun corpFlightBookings(bookings: Array<IntArray>, n: Int): IntArray {
        val ret = IntArray(n)
        for (booking in bookings) {
            ret[booking[0] - 1] += booking[2]
            if (booking[1] < n) {
                ret[booking[1]] -= booking[2]
            }
        }
        for (i in 1 until n) {
            ret[i] += ret[i - 1]
        }
        return ret
    }
}