Flatten a 2D Array

Easy Real-World Scenarios
Flatten a list of lists into a single list — e.g. combining paginated result pages into one array.

Sample input

[[1,2],[3,4,5],[6]]

Sample output

1 2 3 4 5 6

Solution

matrix = [[1, 2], [3, 4, 5], [6]]
result = [x for row in matrix for x in row]
print(*result)
const matrix = [[1, 2], [3, 4, 5], [6]];
const result = matrix.flat();
console.log(result.join(" "));
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        int[][] matrix = {{1, 2}, {3, 4, 5}, {6}};
        List<Integer> result = new ArrayList<>();
        for (int[] row : matrix) {
            for (int x : row) result.add(x);
        }
        System.out.println(result.stream().map(String::valueOf).collect(Collectors.joining(" ")));
    }
}
fun main() {
    val matrix = listOf(listOf(1, 2), listOf(3, 4, 5), listOf(6))
    val result = matrix.flatten()
    println(result.joinToString(" "))
}
let matrix = [[1, 2], [3, 4, 5], [6]]
let result = matrix.flatMap { $0 }
print(result.map(String.init).joined(separator: " "))
void main() {
  final matrix = [[1, 2], [3, 4, 5], [6]];
  final result = matrix.expand((row) => row).toList();
  print(result.join(' '));
}
#include <iostream>
#include <vector>
using namespace std;

int main() {
    vector<vector<int>> matrix = {{1, 2}, {3, 4, 5}, {6}};
    vector<int> result;
    for (auto& row : matrix) {
        for (int x : row) result.push_back(x);
    }
    for (int i = 0; i < (int) result.size(); i++) {
        cout << result[i];
        if (i < (int) result.size() - 1) cout << " ";
    }
    cout << endl;
    return 0;
}
#include <stdio.h>

int main() {
    int row0[] = {1, 2};
    int row1[] = {3, 4, 5};
    int row2[] = {6};
    int *rows[] = {row0, row1, row2};
    int sizes[] = {2, 3, 1};
    int numRows = 3, first = 1;
    for (int i = 0; i < numRows; i++) {
        for (int j = 0; j < sizes[i]; j++) {
            if (!first) printf(" ");
            printf("%d", rows[i][j]);
            first = 0;
        }
    }
    printf("\n");
    return 0;
}