How to calculate the products of (jagged) uneven-sized matrix columns in Java

1 Answer

0 votes
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ColumnProducts {

    public static int[] columnProducts(int[][] matrix) {
        // Find the maximum row length
        int maxCols = Arrays.stream(matrix)
                .mapToInt(row -> row.length)
                .max()
                .orElse(0);

        List<Integer> products = new ArrayList<>();

        for (int col = 0; col < maxCols; col++) {
            int product = 1;

            for (int[] row : matrix) {
                if (col < row.length) {
                    product *= row[col];
                }
            }

            products.add(product);
        }

        // Convert List<Integer> → int[]
        return products.stream().mapToInt(Integer::intValue).toArray();
    }

    public static void main(String[] args) {
        int[][] matrix = {
            {1, 2, 3},
            {4, 5},
            {6, 7, 8, 9}
        };

        int[] result = columnProducts(matrix);

        System.out.println("Column products: " + Arrays.toString(result));
    }
}

  
  
/*
run:
  
Column products: [24, 70, 24, 9]
  
*/

 



answered Feb 13 by avibootz
...