แรงบันดาลใจจากนี้โพสต์ StackOverflow
บทนำ
งานของ Bob คือการสร้างสเปรดชีตและจัดระเบียบมัน วิธีที่เขาจัดระเบียบมันมีน้อยมากยกเว้นบ็อบ แต่เขาสร้างรายการสเปรดชีตแต่ละอันที่อยู่ในกลุ่มเดียวกัน มีข้อมูลมากมายในสเปรดชีตที่เขาสร้าง แต่มีข้อมูลเพียงชิ้นเดียวที่เรากำลังดูอยู่ตอนนี้: จำนวนวันระหว่างวันที่เขาเริ่มงานนี้และวันที่เขาสร้างสเปรดชีต ในวันแรกที่เขาสร้างสเปรดชีตสองรายการเขาได้บันทึกพวกเขาทั้งสองเป็น0
และจัดเรียงไว้ในตำแหน่งที่เหมาะสม
ตอนนี้หัวหน้าของเขากำลังขอให้ตรวจสอบว่าสเปรดชีตชนิดใดที่เกิดขึ้นในแต่ละวันและเป็นหน้าที่ของคุณที่จะเขียนโค้ดที่จะช่วยบอกบ๊อบ; เขามีสเปรดชีตมากเกินไปที่จะทำด้วยมือ
อินพุต
ข้อมูลของบ๊อบว่าเขาจะช่วยให้คุณมาในรูปแบบของ (0 หรือ 1 จัดทำดัชนี) x = a[i][j]
อาร์เรย์หยักที่แต่ละตัวเลขจะอยู่ในรูป a
คือสิ่งที่ฉันเรียกอาร์เรย์แบบขรุขระนั้นi
เป็นชนิดของสเปรดชีตและx
เป็นวันที่ที่อาร์เรย์ถูกสร้างขึ้น j
ไม่สำคัญ
งาน
เมื่อกำหนดวันสร้างสเปรดชีตที่มีการจัดเรียงตามประเภทแบบขรุขระให้ส่งคืนอาร์เรย์ประเภทสเปรดชีตที่จัดเรียงตามแนวขรุขระด้วยวันสร้างสเปรดชีต
ตัวอย่าง
บ๊อบจะไม่ทิ้งคุณไว้กับข้อมูลนามธรรมนี้ เขามอบสเปรดชีตของเขาบางส่วนให้ฉันเพื่อช่วยคุณในการหาว่าทุกสิ่งควรเป็นอะไร
ตัวอย่างอินพุต (ดัชนี 0):
a = [
[3,2,5,0], # Bob doesn't necessarily sort his lists
[1,3],
[2,1,0,4],
[4,5,3],
[6,6]
]
ตัวอย่างผลลัพธ์ (พร้อมคำอธิบายซึ่งไม่จำเป็นต้องมีของหลักสูตร):
output = [
[0,2] # On day 0, Bob made one type 0 and one type 2 spreadsheet
[1,2] # On day 1, Bob made one type 1 and one type 2 spreadsheet
[0,2] # On day 2, Bob made one type 0 and one type 2 spreadsheet
[0,1,3] # On day 3, Bob made one type 0, one type 1, and one type 3 spreadsheet
[2,3] # On day 4, Bob made one type 2 and one type 3 spreadsheet
[0,3] # On day 5, Bob made one type 0 and one type 3 spreadsheet
[4,4] # On day 6, Bob made two type 4 spreadsheets
]
โปรดทราบว่าบ็อบไม่ได้ทำสเปรดชีตสองครั้งทุกวันดังนั้นผลลัพธ์อาจจะขรุขระด้วยเช่นกัน แต่เขาจะทำสเปรดชีตอย่างน้อยหนึ่งครั้งทุกวันดังนั้นผลลัพธ์จะไม่จำเป็นต้องมีอาร์เรย์ที่ว่างเปล่า - แม้ว่าคุณจะมีอาร์เรย์ที่ว่างเปล่าในตอนท้าย แต่คุณก็ไม่จำเป็นต้องลบมันออก
กรณีทดสอบเพิ่มเติม:
[[3,5,6,2],[0,0,0],[1,0,3,4]] -> [[1,1,1,2],[2],[0],[0,2],[2],[0],[0]]
[[-1]] -> Undefined behavior, as all input numbers will be non-negative integers.
[[0],[0],[],[0]] -> [[0,1,3]]
ไม่จำเป็นต้องเรียงรายการภายในของเอาท์พุท
เช่นเคยไม่มีช่องโหว่มาตรฐานและแน่นอนว่าโค้ดที่สั้นที่สุดชนะ
(เนื่องจากนี่เป็นคำถามแรกของฉันโปรดแจ้งให้ฉันทราบถึงสิ่งที่ฉันสามารถทำได้เพื่อปรับปรุงให้ดีขึ้น)
[[0 0]]
ให้การส่งออก[[0 0] []]
?