joseiedo
Matrix Operations
Overview

Matrix Operations

January 16, 2026
1 min read

Create Copy

import java.util.ArrayList;
import java.util.List;
public void fn(List<List<Integer>> matrix) {
List<List<Integer>> createMatrix = new ArrayList<>();
List<List<Integer>> copyMatrix = new ArrayList<>();
int r = matrix.size();
int c = matrix.get(0).size();
for (int i = 0; i < r; i++) {
List<Integer> row = new ArrayList<>();
for (int j = 0; j < c; j++) {
row.add(0);
}
createMatrix.add(row);
}
for (List<Integer> row : matrix) {
copyMatrix.add(new ArrayList<>(row));
}
}

Diagonals

import java.util.ArrayList;
import java.util.List;
public void fn(List<List<Integer>> matrix) {
List<Integer> mainDiagonal = new ArrayList<>();
List<Integer> antiDiagonal = new ArrayList<>();
int r = matrix.size();
int c = matrix.get(0).size();
for (int i = 0; i < Math.min(r, c); i++) {
mainDiagonal.add(matrix.get(i).get(i));
}
for (int i = 0; i < Math.min(r, c); i++) {
antiDiagonal.add(matrix.get(i).get(c - 1 - i));
}
}

Rotate/Transpose

import java.util.ArrayList;
import java.util.List;
public static void fn(List<List<Integer>> matrix) {
List<List<Integer>> transpose = new ArrayList<>();
List<List<Integer>> rotateLeft = new ArrayList<>();
List<List<Integer>> rotateRight = new ArrayList<>();
int r = matrix.size();
int c = matrix.get(0).size();
for (int j = 0; j < c; j++) {
List<Integer> newRow = new ArrayList<>();
for (int i = 0; i < r; i++) {
newRow.add(matrix.get(i).get(j));
}
transpose.add(newRow);
}
for (int i = transpose.size() - 1; i >= 0; i--) {
rotateLeft.add(transpose.get(i));
}
for (List<Integer> row : transpose) {
List<Integer> newRow = new ArrayList<>();
for (int i = row.size() - 1; i >= 0; i--) {
newRow.add(row.get(i));
}
rotateRight.add(newRow);
}
}