วัตถุประสงค์
สร้างรายการที่มีสัญญาณรบกวนเดิมจากการเคลื่อนไหวที่มีการจัดเรียงการแทรกเพื่อจัดเรียง รายการต้นฉบับจะมีตัวเลขทั้งหมดตั้งแต่0
ถึงN-1
(รวม) โดยที่N
ขนาดของอินพุต
อินพุต
รายการที่มีการเคลื่อนไหวที่จำเป็นเพื่อเรียงลำดับรายการ แต่ละค่าแสดงถึงจำนวนช่องที่แทนที่ด้วยหมายเลขเดิม (สัญญาณรบกวน) ที่จะอยู่ในตำแหน่งที่ถูกต้องโปรดทราบว่ากระบวนการนี้มาจากด้านซ้ายไปทางขวา
ค่าที่ตำแหน่ง (ดัชนี 0) i
ในรายการอินพุตจะอยู่ระหว่าง0
และi
รวม
คุณไม่จำเป็นต้องจัดการอินพุตที่ไม่ถูกต้องพฤติกรรมใด ๆ เป็นที่ยอมรับในกรณีนี้ (เกิดความผิดพลาดวนซ้ำไม่สิ้นสุด ฯลฯ )
เอาท์พุต
รายการที่มีสัญญาณรบกวน
ทีละขั้นตอนในการสร้างการเคลื่อนไหว
Scrambled List | Moves to sort
[4,0,2,1,3,5] | [0, , , , , ] #4 stay in place
[4,0,2,1,3,5] | [0,1, , , , ] #0 is moved 1 slot to the left
[0,4,2,1,3,5] | [0,1,1, , , ] #2 is moved 1 slot
[0,2,4,1,3,5] | [0,1,1,2, , ] #1 is moved 2 slot
[0,1,2,4,3,5] | [0,1,1,2,1, ] #3 is moved 1 slot
[0,1,2,3,4,5] | [0,1,1,2,1,0] #5 is in the right place already
[0,1,2,3,4,5]
ดังนั้นสำหรับการป้อนข้อมูลที่จำเป็นในโปรแกรมของคุณเพื่อการส่งออก[0,1,1,2,1,0]
โปรดทราบว่าการเคลื่อนไหวไม่ได้อยู่ในตำแหน่งในรายการเรียงลำดับ (สุดท้าย) แต่ในส่วนที่เรียงลำดับแล้ว (ส่วนที่เป็นตัวหนา)[4,0,2,1,3,5]
กรณีทดสอบ
[0,0,0] -> [0,1,2]
[0,1,0,1] -> [1,0,3,2]
[0,0,0,0,0,5] -> [1,2,3,4,5,0]
[0,1,2,3] -> [3,2,1,0]
[0,1,1,1] -> [3,0,1,2]
[0,1,1,2,1,0] -> [4,0,2,1,3,5]
การชนะ
นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดชนะ