Computer >> Máy Tính >  >> Lập trình >> Python

Đặt vé chuyến bay công ty bằng Python

Giả sử chúng ta có n chuyến bay, và chúng được đánh dấu từ 1 đến n. Chúng tôi có một danh sách các đặt chỗ chuyến bay. Đặt chỗ thứ i cho biết sử dụng đặt chỗ [i] =[i, j, k] điều này có nghĩa là chúng tôi đã đặt k chỗ từ các chuyến bay có nhãn từ i đến j. Tìm câu trả lời mảng có độ dài n, hiển thị số lượng ghế đã đặt trên mỗi chuyến bay theo thứ tự nhãn của chúng. Vì vậy, nếu đầu vào là [[1,2,10], [2,3,20], [2,5,25]] và n =5, thì đầu ra sẽ là [10, 55, 45, 25, 25].

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • res:=tạo một mảng có kích thước n và điền vào mảng này bằng 0
  • cho mỗi mục nhập mà tôi đặt chỗ
    • res [i [0] - 1]:=res [i [0] - 1] + i [2]
    • nếu tôi [1]
  • cho tôi trong phạm vi từ 1 đến n - 1
    • res [i]:=res [i] + res [i - 1]
  • trả lại res

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

class Solution(object):
   def corpFlightBookings(self, bookings, n):
      res = [0 for i in range(n)]
      for i in bookings:
         res[i[0]-1]+=i[2]
         if(i[1]<n):
            res[i[1]]-=i[2]
      for i in range(1,n):
         res[i]+=res[i-1]
      return res
ob = Solution()
print(ob.corpFlightBookings([[1,2,10],[2,3,20],[2,5,25]],5))

Đầu vào

[[1,2,10],[2,3,20],[2,5,25]]
5

Đầu ra

[10, 55, 45, 25, 25]