โจทย์ทั้งหมด
ง่าย 0 ข้อที่แก้แล้ว อัตราผ่าน 0%

แปลงอาร์เรย์ 2 มิติให้เป็นอาร์เรย์เดียว

รวมแถวของอาร์เรย์จำนวนเต็ม 2 มิติให้เป็นอาร์เรย์เดียว

รวมแถวของอาร์เรย์จำนวนเต็ม 2 มิติให้เป็นอาร์เรย์เดียว อ่านแถวจากบนลงล่าง และอ่านจำนวนเต็มแต่ละแถวจากซ้ายไปขวา ข้ามแถวที่ว่างไว้ รักษาค่าที่ซ้ำกันและลำดับเดิมไว้ แถวแต่ละแถวอาจมีความยาวไม่เท่ากัน มีเพียง 2 ระดับของอาร์เรย์: แต่ละแถวมีแต่จำนวนเต็มเท่านั้น ไม่มีค่า null หรืออาร์เรย์ซ้อนลึกกว่านี้

ให้เขียนฟังก์ชัน flatten_nested_list(values)

อินพุต

values: แถวของจำนวนเต็มที่ต้องการรวม ตามลำดับ

เอาต์พุต

คืนค่าจำนวนเต็มทั้งหมดตามลำดับแถว หากไม่มีจำนวนเต็มให้คืนอาร์เรย์ว่าง

เงื่อนไข

0 ≤ จำนวนแถว ≤ 10,000 มีจำนวนเต็มรวมไม่เกิน 10,000 ตัว แต่ละจำนวนเต็มอยู่ระหว่าง −1,000,000,000 ถึง 1,000,000,000 แถวอาจว่างหรือมีความยาวไม่เท่ากันได้

ตัวอย่าง

ตัวอย่างที่ 1
อินพุต:
values = [
    [1, 2],
    [],
    [3, 4]
]

ผลลัพธ์ที่คาดหวัง:
expected = [1, 2, 3, 4]
อินพุต:
std::vector<std::vector<long long>> values = {
    {1, 2},
    {},
    {3, 4}
};

ผลลัพธ์ที่คาดหวัง:
std::vector<long long> expected = {1, 2, 3, 4};
อินพุต:
long[][] values = new long[][] {
    new long[] {1, 2},
    new long[] {},
    new long[] {3, 4}
};

ผลลัพธ์ที่คาดหวัง:
long[] expected = new long[] {1, 2, 3, 4};

คำอธิบาย

อ่าน 1 และ 2 จากแถวแรก ข้ามแถวที่สองที่ว่างไว้ แล้วนำ 3 และ 4 จากแถวสุดท้ายมาต่อท้าย

ตัวอย่างที่ 2
อินพุต:
values = [
    [],
    []
]

ผลลัพธ์ที่คาดหวัง:
expected = []
อินพุต:
std::vector<std::vector<long long>> values = {
    {},
    {}
};

ผลลัพธ์ที่คาดหวัง:
std::vector<long long> expected = {};
อินพุต:
long[][] values = new long[][] {
    new long[] {},
    new long[] {}
};

ผลลัพธ์ที่คาดหวัง:
long[] expected = new long[] {};

คำอธิบาย

ทั้งสองแถวว่าง ไม่มีจำนวนเต็มให้ต่อท้าย

แหล่งอ้างอิง

โจทย์นี้ปรับให้เหมาะกับ CodeUtility กรุณาทำตามคำชี้แจงและข้อจำกัดด้านบน

เรียนรู้จากคนอื่น

แนวทางจากชุมชน

ยังไม่มีวิธีทำที่เผยแพร่ ลองแก้โจทย์นี้เพื่อแชร์วิธีแรก