ฉันพยายามที่จะจำลองลิฟต์เช่นเคยฉันเริ่มง่ายมากโดยการสั่งซื้อครั้งเดียวเพียงครั้งเดียวแล้วเพิ่มหน่วยความจำในลิฟต์ในรูปแบบของคิวเพื่อให้ชั้นจะเดินทางตามลำดับที่พวกเขากด ซึ่งเห็นได้ชัดว่าไม่ใช่วิธีที่ดีที่สุด
ดังนั้นในขณะนี้ฉันใช้ตรรกะที่เรียบง่ายและ "สายตาสั้น" ซึ่งก็คือสำหรับชั้นปัจจุบันหาพื้นที่อยู่ใกล้ฉันที่สุดและตั้งเป็นปลายทางต่อไปของฉันและวนไปเรื่อย ๆ จนไม่มีชั้นอื่น ๆ อยู่ในรายการ
แต่มันไม่ได้ผลเสมอไปตัวอย่างเช่นลิฟต์อยู่ที่ชั้น 3 ของอาคาร 5 ชั้นและได้รับคำสั่ง 4,5,2 เส้นทางที่สั้นที่สุดจะเป็น 2-> 4-> 5 ซึ่งมีค่าใช้จ่าย 4 ชั้น แต่ใช้ตรรกะนี้ 4-> 5-> 2 ซึ่งมีค่าใช้จ่าย 5 มีโอกาสถูกเลือกขึ้นอยู่กับรหัส
ฉันจะค้นหาเส้นทางที่สั้นที่สุดและทำให้ลิฟต์มีประสิทธิภาพมากขึ้นได้อย่างไร