मान लीजिए एक वाहन है जिसमें शुरू में यात्रियों के लिए क्षमता खाली सीटें उपलब्ध हैं। वाहन केवल पूर्व की ओर चलता है, इसलिए हम घूमकर पश्चिम नहीं जा सकते। हमारे पास यात्राओं की एक सूची दी गई है, trip[i] = [num_passengers, start_location, end_location], जिसमें i-वीं यात्रा के बारे में जानकारी है: यात्रियों की संख्या जिन्हें पिक अप किया जाना है, और उन्हें पिक अप और ड्रॉप ऑफ करने के स्थान। यहां स्थान हमारे वाहन के प्रारंभिक स्थान से पूर्व की ओर किलोमीटर की संख्या के रूप में दिए गए हैं। हमारा मॉड्यूल तभी सही लौटाएगा जब सभी दी गई यात्राओं के लिए सभी यात्रियों को पिक अप और ड्रॉप ऑफ करना संभव हो। इसलिए यदि यात्राएं [[2,1,5],[3,3,7]] जैसी हैं और क्षमता 5 है, तो आउटपुट true होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- stops नामक एक सरणी बनाएं, आकार 1000 का, और इसे 0 से भरें
- trips में i के लिए
- stops[i[1]] := stops[i[1]] + i[0]
- stops[i[2]] := stops[i[1]] - i[0]
- stops में i के लिए
- capacity := capacity - i
- यदि capacity < 0, तो false लौटाएं
- capacity >= 0 होने पर true लौटाएं
उदाहरण
class Solution(object):
def carPooling(self, trips, capacity):
stops = [0 for i in range(1001)]
for i in trips:
stops[i[1]] += i[0]
stops[i[2]] -= i[0]
for i in stops:
capacity -= i
if capacity < 0:
return False
return capacity >= 0
ob = Solution()
print(ob.carPooling([[2,1,5],[3,3,7]], 5))
इनपुट
[[2,1,5],[3,3,7]] 5
आउटपुट
True