Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การจองเที่ยวบินสำหรับองค์กรใน Python


สมมติว่าเรามี n เที่ยวบิน และมีป้ายกำกับตั้งแต่ 1 ถึง n เรามีรายการจองตั๋วเครื่องบิน การจองครั้งที่ i หมายถึงการใช้การจอง[i] =[i, j, k] ซึ่งหมายความว่าเราจองที่นั่ง k ที่นั่งจากเที่ยวบินที่มีป้ายกำกับว่า i ถึง j ค้นหาคำตอบของอาร์เรย์ของความยาว n โดยแสดงจำนวนที่นั่งที่จองในแต่ละเที่ยวบินตามลำดับป้าย ดังนั้นหากอินพุตเป็น [[1,2,10],[2,3,20],[2,5,25]] และ n =5 ผลลัพธ์จะเป็น [10, 55, 45, 25, 25].

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • res :=สร้างอาร์เรย์หนึ่งขนาด n และเติมค่านี้ด้วย 0
  • สำหรับแต่ละรายการ i ในการจอง
    • res[i[0] - 1] :=res[i[0] - 1] + i[2]
    • ถ้า i[1]
  • สำหรับ i ในช่วง 1 ถึง n – 1
    • res[i] :=res[i] + res[i - 1]
  • ผลตอบแทน

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

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))

อินพุต

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

ผลลัพธ์

[10, 55, 45, 25, 25]