मान लीजिए कि हमारे पास n उड़ानें हैं, और उन्हें 1 से n तक लेबल किया गया है। हमारे पास फ्लाइट बुकिंग की एक सूची है। i-th बुकिंग बुकिंग का उपयोग करने का संकेत देती है [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 से भरें
- बुकिंग में प्रत्येक प्रविष्टि के लिए
- res[i[0] - 1] :=res[i[0] - 1] + i[2]
- अगर मैं [1] <एन, फिर रेस [i [1]]:=रेस [i [1]] - मैं [2]
- मैं के लिए 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]