โจทย์
ดูต้นฉบับ (ภาษาอังกฤษ)รวมแถวของอาร์เรย์จำนวนเต็ม 2 มิติให้เป็นอาร์เรย์เดียว อ่านแถวจากบนลงล่าง และอ่านจำนวนเต็มแต่ละแถวจากซ้ายไปขวา ข้ามแถวที่ว่างไว้ รักษาค่าที่ซ้ำกันและลำดับเดิมไว้ แถวแต่ละแถวอาจมีความยาวไม่เท่ากัน มีเพียง 2 ระดับของอาร์เรย์: แต่ละแถวมีแต่จำนวนเต็มเท่านั้น ไม่มีค่า null หรืออาร์เรย์ซ้อนลึกกว่านี้
ให้เขียนฟังก์ชัน flatten_nested_list(values)
อินพุต
values: แถวของจำนวนเต็มที่ต้องการรวม ตามลำดับ
เอาต์พุต
คืนค่าจำนวนเต็มทั้งหมดตามลำดับแถว หากไม่มีจำนวนเต็มให้คืนอาร์เรย์ว่าง
เงื่อนไข
0 ≤ จำนวนแถว ≤ 10,000 มีจำนวนเต็มรวมไม่เกิน 10,000 ตัว แต่ละจำนวนเต็มอยู่ระหว่าง −1,000,000,000 ถึง 1,000,000,000 แถวอาจว่างหรือมีความยาวไม่เท่ากันได้
ตัวอย่าง
อินพุต:
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 จากแถวสุดท้ายมาต่อท้าย
อินพุต:
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 กรุณาทำตามคำชี้แจงและข้อจำกัดด้านบน