একটি গাড়ির capacity খালি সিট আছে। গাড়িটি শুধু পূর্ব দিকে চলে। trips লিস্ট দেওয়া আছে, trip[i] = [num_passengers, start_location, end_location]। এটি i-তম ট্রিপের তথ্য: কতজন প্যাসেঞ্জার পিক আপ করা লাগবে এবং কোথায় পিক আপ ও ড্রপ অফ করতে হবে। লোকেশনগুলো গাড়ির স্ট্রাটিং পয়েন্ট থেকে কিমি দূরত্বে পূর্বে। সকল ট্রিপের জন্য প্যাসেঞ্জার পিক আপ ও ড্রপ অফ সম্ভব কিনা তা বুলিয়ান হিসেবে রিটার্ন করতে হবে।
ট্রিপস [[2,1,5],[3,3,7]] এবং capacity 5 হলে আউটপুট true।
সমাধানের ধাপসমূহ
- stops নামে 1000 সাইজের অ্যারে 0 দিয়ে ফিল করুন
- প্রতিটি ট্রিপ i-এর জন্য:
- stops[i[1]] += i[0]
- stops[i[2]] -= i[0]
- stops এর প্রতিটি এলিমেন্টের জন্য:
- 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