n সংখ্যক ফ্লাইট আছে, 1 থেকে n পর্যন্ত লেবেলড। ফ্লাইট বুকিংয়ের একটি লিস্ট দেওয়া আছে। i-তম বুকিং bookings[i] = [i, j, k] মানে ফ্লাইট i থেকে j পর্যন্ত (ইনক্লूसিভ) k সিট বুক করা হয়েছে। 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] += i[2]
- যদি i[1] < n হয়, তবে res[i[1]] -= i[2]
- 1 থেকে n-1 পর্যন্ত লুপে res[i] += res[i-1]
- res রিটার্ন করুন
উদাহরণ
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]