สมมติว่ามีรถยนต์ที่มีที่นั่งว่างในขั้นต้นสำหรับผู้โดยสาร รถขับไปทางทิศตะวันออกเท่านั้น เราจึงไม่สามารถหันหลังกลับและขับไปทางทิศตะวันตกได้ เราได้ให้รายชื่อการเดินทาง trip[i] =[num_passengers, start_location, end_location] ซึ่งมีข้อมูลเกี่ยวกับการเดินทาง ith:จำนวนผู้โดยสารที่ต้องรับ และสถานที่รับ และส่งพวกเขาออกไป ในที่นี้ระบุตำแหน่งตามจำนวนกิโลเมตรที่ไปทางตะวันออกจากตำแหน่งเริ่มต้นของรถของเรา โมดูลของเราจะคืนค่าเป็น จริง หากสามารถรับและส่งผู้โดยสารทั้งหมดสำหรับการเดินทางที่กำหนดทั้งหมดได้ ดังนั้นหากทริปเป็นเหมือน [[2,1,5],[3,3,7]] และความจุเท่ากับ 5 ผลลัพธ์จะเป็นจริง
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- สร้างอาร์เรย์หนึ่งตัวที่เรียกว่าหยุด ขนาด 1000 และเติมค่านี้ด้วย 0
- สำหรับฉันในการเดินทาง
- หยุด[i[1]] :=หยุด[i[1]] + i[0]
- หยุด[i[2]] :=หยุด[i[1]] – i[0]
- สำหรับ i ในหยุด −
- ความจุ :=ความจุ – i
- ถ้าความจุ <0 ให้คืนค่าเท็จ
- คืนค่า จริง เมื่อความจุ>=0
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
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