Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
1.8 kB
2
Indexable
Never
Để xóa nhiều hàng và cột khác nhau trong một ma trận, bạn có thể sử dụng một hàm tương tự như hàm `removeRowAndColumn` mà tôi đã đề cập ở trên. Tuy nhiên, thay vì chỉ truyền vào một chỉ số `j`, bạn có thể truyền vào một mảng các chỉ số cần xóa. Sau đó, bạn có thể sử dụng một biến boolean để kiểm tra xem một hàng hoặc cột có nằm trong danh sách cần xóa hay không.

Đây là một ví dụ về cách viết hàm xóa nhiều hàng và cột của một ma trận 2 chiều bằng Java:

```java
public static int[][] removeRowsAndColumns(int[][] matrix, int[] indices) {
    int m = matrix.length;
    int n = matrix[0].length;
    boolean[] rowsToRemove = new boolean[m];
    boolean[] colsToRemove = new boolean[n];
    for (int index : indices) {
        rowsToRemove[index] = true;
        colsToRemove[index] = true;
    }
    int newM = m - indices.length;
    int newN = n - indices.length;
    int[][] newMatrix = new int[newM][newN];
    int row = 0;
    for (int i = 0; i < m; i++) {
        if (rowsToRemove[i]) continue;
        int col = 0;
        for (int j = 0; j < n; j++) {
            if (colsToRemove[j]) continue;
            newMatrix[row][col] = matrix[i][j];
            col++;
        }
        row++;
    }
    return newMatrix;
}
```

Hàm này nhận đầu vào là một ma trận 2 chiều `matrix` và một mảng `indices` chứa các chỉ số của các hàng và cột cần xóa. Hàm sẽ trả về một ma trận mới sau khi đã xóa các hàng và cột được chỉ định.

Bạn có thể sử dụng hàm này như một cơ sở để giải quyết bài toán của mình. Bạn có muốn biết thêm chi tiết gì không?