บทนำ
คิวเป็นชนิดข้อมูลนามธรรมที่องค์ประกอบเพิ่มไปด้านหน้า (enqueue) และลบออกจากด้านหลัง (dequeue) นอกจากนี้ยังเป็นที่รู้จักกันFIFO (First In First Out)หลักการ
มันจะแสดงที่ดีที่สุดด้วยตัวอย่าง:
ท้าทาย
รับอาร์เรย์ที่ไม่ว่างเปล่าที่มีจำนวนเต็มบวกและองค์ประกอบที่ระบุdequeue (ลบองค์ประกอบ) ออกรายการสุดท้ายของคิว
สมมุติว่าX
เป็น dequeue ในตัวอย่างนี้ ลองดูรายการต่อไปนี้:
[45, X, X, 37, 20, X, 97, X, 85]
สิ่งนี้สามารถแปลเป็นรหัสคิวหลอกต่อไปนี้:
Queue
Enqueue 45 -> 45
Dequeue ->
Dequeue -> (dequeue on an empty queue is a no-op)
Enqueue 37 -> 37
Enqueue 20 -> 20 37
Dequeue -> 20
Enqueue 97 -> 97 20
Dequeue -> 97
Enqueue 85 -> 85 97
คุณจะเห็นว่าในท้ายที่สุดผลลัพธ์คือ[85, 97]
ซึ่งเป็นผลลัพธ์สำหรับลำดับนี้
กรณีทดสอบ
โปรดทราบว่าคุณสามารถเลือกสัญลักษณ์หรือตัวละครX
อื่นได้ตราบใดที่ไม่ใช่จำนวนเต็มบวก
[1, X, 2, X, 3, X] -> []
[1, 2, X] -> [2]
[1, 2, 3] -> [3, 2, 1]
[1, 2, X, X, X, 3] -> [3]
[1, 2, X, 3, X, 4] -> [4, 3]
นี่คือโค้ดกอล์ฟดังนั้นการส่งที่มีจำนวนไบต์น้อยที่สุดจะชนะ!