文章目录
- 一 题目描述
- 二 算法思路
- 三 代码描述
一、题目描述
给你一个二维整数数组 matrix
, 返回 matrix
的 转置矩阵 。
矩阵的 转置 是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。
示例 1:
输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出:[[1,4,7],[2,5,8],[3,6,9]]
示例 2:
输入:matrix = [[1,2,3],[4,5,6]]
输出:[[1,4],[2,5],[3,6]]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/transpose-matrix
二、算法思想
根据题意可知这个题目是比较简单的,但是需要注意的是,所给矩阵不一定是行和列相等的矩阵,不能够先入为主,认为该矩阵是行列相等的矩阵,所以转置过程中就要新建一个矩阵,新建矩阵的行数等于原矩阵的列数,新建矩阵的列数等于原矩阵的行数。两层循环即可实现矩阵的转置。
三、代码实现
class Solution {
public int[][] transpose(int[][] matrix) {
int temp;
boolean [][]flag=new boolean[matrix.length][matrix.length];
for(int i=0;i<matrix.length;++i){
for(int j=0;j<matrix.length;++j){
if(flag[i][j]==false){
flag[i][j]=flag[j][i]=true;
temp=matrix[i][j];
matrix[i][j]=matrix[j][i];
matrix[j][i]=temp;
}
}
}
return matrix;
}
}