รับอาร์เรย์ของจำนวนเต็ม 2 มิติลองเรียงแถวและคอลัมน์ในบล็อก ซึ่งหมายความว่าคุณต้องเรียงลำดับแถวหรือคอลัมน์ที่กำหนดเท่านั้น แต่ใช้การแปลงที่จำเป็นสำหรับการจัดเรียงแถวกับทุกแถวหรือคอลัมน์อื่น ๆ ในอาร์เรย์ 2D
กฎระเบียบ
- อินพุตจะเป็นอาร์เรย์จำนวนเต็ม 2 มิติและจำนวนเต็ม 1 ดัชนี จำนวนเต็มนี้จะแทนแถวที่จะเรียงหากตัวเลขเป็นค่าบวกหรือคอลัมน์ที่จะเรียงหากตัวเลขเป็นค่าลบ (หรือวิธีอื่น ๆ ที่คุณต้องการ) ตัวอย่าง: กำหนด
4x3
แถว (คอลัมน์ x คอลัมน์) คุณสามารถเรียงลำดับคอลัมน์ที่สองด้วย-2
อาร์กิวเมนต์หรือแถวที่สามด้วย3
อาร์กิวเมนต์ อาร์กิวเมนต์ที่สองนี้จะไม่เป็นศูนย์และค่าสัมบูรณ์ของมันจะไม่มากกว่ามิติที่สอดคล้องกันของอาร์เรย์ - เอาต์พุตจะเป็นอาร์เรย์จำนวนเต็มแบบ 2 มิติที่มีการแปลงที่ต้องการเพื่อเรียงลำดับแถวหรือคอลัมน์ที่กำหนด หรือคุณสามารถเขียนอาร์เรย์ไปยัง STDOUT
- อาร์เรย์เอาต์พุตจะมีแถวหรือคอลัมน์ที่ระบุเรียงตามลำดับจากน้อยไปหามาก เพิ่งทราบว่าเมื่อคุณต้องการสลับตัวเลขสองตัวในหนึ่งแถวคอลัมน์ทั้งหมดที่มีการวางตัวเลขจะถูกสลับ และเมื่อคุณต้องการสลับสองตัวเลขในคอลัมน์แถวทั้งหมดที่มีการวางตัวเลขจะถูกสลับ
- ในกรณีที่หมายเลขเดียวกันปรากฏขึ้นหลายครั้งในแถว / คอลัมน์ที่จะเรียงลำดับจะมีวิธีแก้ปัญหาที่หลากหลายตามวิธีที่คุณสลับค่าเพียงทำตามกับส่วนที่เหลือของแถว / คอลัมน์ที่จะแลกเปลี่ยน
ตัวอย่าง
Positive indices for rows and negative indices for columns
[5 8 7 6 [1 3 2 4
1 3 2 4 order by -3 (3rd column) --> 9 6 3 0
9 6 3 0] 5 8 7 6]
[5 8 7 6 [9 6 3 0
1 3 2 4 order by -4 (4th column) --> 1 3 2 4
9 6 3 0] 5 8 7 6]
[5 8 7 6 [5 7 8 6
1 3 2 4 order by 2 (2nd row) --> 1 2 3 4
9 6 3 0] 9 3 6 0]
[5 8 7 6 [6 7 8 5
1 3 2 4 order by 3 (3rd row) --> 4 2 3 1
9 6 3 0] 0 3 6 9]
[1 2 [1 2 [3 2
3 2] order by -2 (2nd column) --> 3 2] or 1 2] (both are valid)
[7 5 9 7 [5 7 7 9 [5 7 7 9
1 3 2 4 order by 1 (1st row) --> 3 1 4 2 or 3 4 1 2
9 6 3 0] 6 9 0 3] 6 0 9 3]
นี่คือรหัส - กอล์ฟดังนั้นอาจเป็นรหัสที่สั้นที่สุดสำหรับแต่ละภาษาที่ชนะ!