ความท้าทายนี้ได้อธิบายเกี่ยวกับ dropsort แล้ว แต่ฉันขี้เกียจครับและผมจะต้องอาร์เรย์ของฉันจะเป็นบิตเรียงขึ้นกว่า แต่ก่อนก็ไม่ได้จะต้องมีการจัดเรียงทุกทาง
ใน Drop Sort เราปล่อยทุกองค์ประกอบน้อยกว่าองค์ประกอบใด ๆก่อนหน้านี้ ใน Lazy วางเรียงเราวางทุกองค์ประกอบน้อยกว่าหนึ่งอย่างเคร่งครัดก่อนหน้ามัน
นี่คือตัวอย่าง พิจารณาอาร์เรย์ต่อไปนี้:
8 6 9 9 7 2 3 8 1 3
ลองทำเครื่องหมายทุกองค์ประกอบที่น้อยกว่าหนึ่งก่อน
8 6 9 9 7 2 3 8 1 3
^ ^ ^ ^
แจ้งให้ทราบว่าไม่ถูกทำเครื่องหมายหรือที่ผ่านมา3
8
พวกเขาทั้งหมดมีขนาดใหญ่กว่าองค์ประกอบเดียวทางด้านซ้ายของพวกเขา
การทำให้อัลกอริธึมเสร็จสมบูรณ์ลบองค์ประกอบที่ทำเครื่องหมายไว้เราได้
8 9 9 3 8 3
นั่นโดยทั่วไปแล้วดูเรียงมากขึ้น Kinda ฉันขี้เกียจ.
งานของคุณตามที่คุณอาจอนุมานแล้วคือการใช้อัลกอริทึมนี้
อินพุตเป็นอาร์เรย์ที่มีจำนวนเต็มบวกอย่างน้อย 1 ค่าระหว่าง 1 ถึง 9 ดังนั้นคุณสามารถใช้ตัวเลขเป็นตัวเลขได้เช่นกัน
นี่คือcode-golfไบต์ที่น้อยที่สุดชนะ!
กรณีทดสอบเพิ่มเติม:
1
1
1 2 3
1 2 3
5 3 1
5
1 2 3 2 1
1 2 3
1 1 1 9 9 9 1 1 1 9 9 9 1 1 1
1 1 1 9 9 9 1 1 9 9 9 1 1
9 9
9 9
5 2 4 2 3
5 4 3