Given a matrix(矩阵) A, return the transpose(转置矩阵) of A.
The transpose of a matrix is the matrix flipped over(翻转) it’s main diagonal(对角线), switching the row and column indices(index,索引) of the matrix.
Example 1:
Input: [[1,2,3],[4,5,6],[7,8,9]]
Output: [[1,4,7],[2,5,8],[3,6,9]]
Example 2:
Input: [[1,2,3],[4,5,6]]
Output: [[1,4],[2,5],[3,6]]
Note:
1 <= A.length <= 1000
1 <= A[0].length <= 1000
class Solution {
public int[][] transpose(int[][] A) {
int rows=A.length;
int column=A[0].length;
int [][]B=new int[column][rows];
for(int i=0;i<A.length;i++){
for (int j=0;j<A[i].length;j++)
{
B[j][i]=A[i][j];
}
}
return B;
}
}
自己的编译器里:
package com.company;
import java.util.Scanner;
public class 转置矩阵867 {
public static int[][] transpose(int[][] A) {
int rows=A.length;
int column=A[0].length;
int [][]B=new int[column][rows];
for(int i=0;i<A.length;i++){
for (int j=0;j<A[i].length;j++)
{
B[j][i]=A[i][j];
}
}
return B;
}
public static void main(String[] args) {
int rows,column;
Scanner scn=new Scanner(System.in);
rows=scn.nextInt();
column=scn.nextInt();
int A[][]=new int[rows][column];
for (int i=0;i<rows;i++){
for (int j=0;j<column;j++){
A[i][j]=scn.nextInt();
}
}
int B[][]=new int[column][rows];
B=transpose(A);
for(int i=0;i<B.length;i++){
for (int j=0;j<B[i].length;j++){
System.out.print(B[i][j]+ " ");
}
System.out.println();
}
}
}