คำชี้แจงปัญหา
เมื่อพิจารณาถึงเวลาเข้าและออกของรถไฟทุกขบวนที่ไปถึงสถานีรถไฟ ภารกิจคือการค้นหาจำนวนชานชาลาขั้นต่ำที่จำเป็นสำหรับสถานีรถไฟเพื่อไม่ให้รถไฟรอนาน
เราได้รับ 2 แถวที่แสดงเวลามาถึงและออกของรถไฟที่จอด
สำหรับข้อมูลด้านล่าง เราต้องการอย่างน้อย 3 แพลตฟอร์ม -
รถไฟ | เวลาที่มาถึง | เวลาออกเดินทาง |
---|---|---|
Train-1 | 09:00 | 09:15 |
Train-2 | 09:35 | 11:45 |
รถไฟ-3 | 09:40 | 11:05 |
Train-4 | 11:00 | 12:00 |
Train-5 | 14:30 | 18:15 |
Train-6 | 18:00 | 19:00 |
อัลกอริทึม
<ก่อน>1. เรียงลำดับเวลาขาเข้าและขาออกตามลำดับจากน้อยไปมาก2 ติดตามจำนวนรถไฟได้ตลอดเวลา ติดตามรถไฟที่มาถึงแต่ยังไม่ออกตัวอย่าง
#include#include #define SIZE(arr) (sizeof(arr) / sizeof(arr[0])) โดยใช้เนมสเปซ std;int getPlatformCount(int *arrival, int *departure, int n ){ sort(การมาถึง, การมาถึง + n); เรียงลำดับ(ออกเดินทาง, ออกเดินทาง + n); int platformCnt =1; ผลลัพธ์ int =1; int ผม =1; int j =0; ในขณะที่ (i ผลลัพธ์) { ผลลัพธ์ =platformCnt; } } อื่น { --platformCnt; ++เจ; } } ส่งคืนผลลัพธ์;}int main(){ int arrival[] ={900, 935, 940, 1100, 1430, 1800}; ออกเดินทางภายใน[] ={915, 1145, 1105, 1200, 1815, 1900}; cout <<"ขั้นต่ำที่จำเป็นแพลตฟอร์ม =" < ผลลัพธ์
เมื่อคุณคอมไพล์และรันโปรแกรมข้างต้น มันสร้างผลลัพธ์ต่อไปนี้ -
แพลตฟอร์มที่ต้องการขั้นต่ำ =3