All challenges
Easy 0 solved 0% acceptance

Flatten a 2D Array

Combine the rows of a 2D integer array into one array.

Problem

Combine the rows of a 2D integer array into one array. Read rows from top to bottom and integers within each row from left to right. Skip empty rows. Preserve repeated integers and their order. Rows may have different lengths. There are exactly two array levels: rows contain only integers, with no null values or deeper lists.

Implement flatten_nested_list(values).

Input

values: The integer rows to combine, in order.

Output

Return all integers in row order. Return an empty array if there are no integers.

Constraints

0 ≤ number of rows ≤ 10,000. At most 10,000 integers in total. Each integer is between −1,000,000,000 and 1,000,000,000. Rows may be empty or have different lengths.

Examples

Example 1
Input:
values = [
    [1, 2],
    [],
    [3, 4]
]

Expected output:
expected = [1, 2, 3, 4]
Input:
std::vector<std::vector<long long>> values = {
    {1, 2},
    {},
    {3, 4}
};

Expected output:
std::vector<long long> expected = {1, 2, 3, 4};
Input:
long[][] values = new long[][] {
    new long[] {1, 2},
    new long[] {},
    new long[] {3, 4}
};

Expected output:
long[] expected = new long[] {1, 2, 3, 4};

Explanation

Read 1 and 2 from the first row. Skip the empty second row. Append 3 and 4 from the last row.

Example 2
Input:
values = [
    [],
    []
]

Expected output:
expected = []
Input:
std::vector<std::vector<long long>> values = {
    {},
    {}
};

Expected output:
std::vector<long long> expected = {};
Input:
long[][] values = new long[][] {
    new long[] {},
    new long[] {}
};

Expected output:
long[] expected = new long[] {};

Explanation

Both rows are empty, so there are no integers to append.

References

This challenge is adapted for CodeUtility. Follow the statement and constraints above.

Learn from others

Community solutions

No published solutions yet. Solve this challenge to share the first one.