用Java编写程序以将矩阵沿逆时针方向旋转90度
假设我们给出了一个N×N的方阵。任务是逆时针旋转矩阵。例如,
输入1 -
N = 3matrix[ ][ ] = [
[1 2 3],
[4 5 6],
[7 8 9]
]
输出-
3 6 9 2 5 8 1 4 7
说明:逆时针旋转矩阵后,将生成3 6 9 2 5 8 1 4 7的输出。
解决这个问题的方法
最初的想法是找到给定矩阵的转置,然后在逐行遍历的同时交换矩阵的每个元素。
以方矩阵的输入为准。
找到矩阵的转置。
用索引n-1交换索引0处的元素。
返回输出。
示例
import java.io.*;输出结果class Solution {
static void rotateMatrix(
int n, int matrix[][]){
for (int i = 0; i < n; i++) {
for (int j = i; j < n; j++) {
int temp= matrix[i][j];
matrix[i][j]= matrix[j][i];
matrix[j][i]= temp;
}
}
for(int i=0;i<n;i++){
int top=0;
int bottom = n-1;
while(top<bottom){
int temp = matrix[top][i];
matrix[top][i]=matrix[bottom][i];
matrix[bottom][i] = temp;
top++;
bottom--;
}
}
}
static void displayMatrix(int N, int mat[][]){
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++)
System.out.print(" " + mat[i][j]);
System.out.print("\n");
}
System.out.print("\n");
}
public static void main(String[] args){
int N = 3;
int mat[][] = {
{1,2,3},
{4,5,6},
{7,8,9}
};
rotateMatrix(N, mat);
displayMatrix(N, mat);
}
}
运行上面的代码将生成如下输出:
3 6 9 2 5 8 1 4 7
以上是 用Java编写程序以将矩阵沿逆时针方向旋转90度 的全部内容, 来源链接: utcz.com/z/351280.html