मान लीजिए हमारे पास 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 से भरें
- bookings में प्रत्येक एंट्री i के लिए
- res[i[0] - 1] := res[i[0] - 1] + i[2]
- यदि i[1] < n, तो res[i[1]] := res[i[1]] - i[2]
- i के लिए 1 से n - 1 तक की रेंज में
- res[i] := 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]