交换矩阵中任意两行的Java程序
给定一个具有 m 行和 n 列的矩阵。我们必须编写一个Java程序来交换给定矩阵中的任意两行。需要交换操作来交换两行的元素。交换两行的 O(1) 操作是不可能的,因为需要在两行之间完成遍历。
例子
Input 1: K = 1, L = 2,
mat[][] = {{2, 1, 4},
{1, 2, 3},
{3, 6, 2}}
Output:
mat[][] = {{1, 2, 3},
{2, 1, 4},
{3, 6, 2}}
Input 2: K = 1, L = 1,
mat[][] = {{2, 1, 4},
{1, 2, 3}}
Output:
mat[][] = {{2, 1, 4},
{1, 2, 3}}
Input 3: K = 2, L = 3,
mat[][] = {{2, 1},
{1, 2},
{3, 6}}
Output:
mat[][] = {{2, 1},
{3, 6},
{1, 2}}
方法
- 如果 First 和 Second 相同,则按原样打印矩阵。
- Else 循环遍历矩阵的第 K 行和第 L 行。
- 遍历时交换两行的第 i 个索引的元素。
- 现在循环结束后,打印矩阵。
下面是上述方法的代码实现:
Java
// Java program to interchange
// two row in a Matrix
import java.io.*;
class GFG {
public static void printMatrix(int[][] matrix)
{
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[0].length; j++)
System.out.print(matrix[i][j] + " ");
System.out.println();
}
}
public static void exchangeAnyTwoRows(int[][] matrix,
int K, int L)
{
for (int i = 0; i < matrix[0].length; i++) {
// Swap two numbers
int temp = matrix[K - 1][i];
matrix[K - 1][i] = matrix[L - 1][i];
matrix[L - 1][i] = temp;
}
// Print matrix
printMatrix(matrix);
}
public static void main(String[] args)
{
int K = 2, L = 3;
int mat[][] = { { 2, 1, 4 }, { 1, 2, 3 }, { 3, 6, 2 } };
// calling the exchange row fuction
exchangeAnyTwoRows(mat, K, L);
}
}
输出
2 1 4
3 6 2
1 2 3
时间复杂度: 0(n),其中 n 是行的长度。
空间复杂度: 0(1)