867 转置矩阵 简单
发布者:admin 发表于:417天前 阅读数:598 评论:0

867. 转置矩阵 简单

给你一个二维整数数组 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]]

提示:

m == matrix.length

n == matrix[i].length

1 <= m, n <= 1000

1 <= m * n <=10⁵

-10⁹ <= matrix[i][j] <= 10⁹

代码参考:

package main

import "fmt"

func main() {
    fmt.Println(transpose([][]int{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}))
    fmt.Println(transpose([][]int{{1, 2, 3}, {4, 5, 6}}))
}

func transpose(A [][]int) [][]int {
    if len(A) <= 0 {
        return A
    }
    n, m := len(A), len(A[0])
    res := make([][]int, m)    // 新行数取原列数
    for i := 0; i < n; i++ {
        for j := 0; j < m; j++ {
            res[j] = append(res[j], A[i][j])
        }
    }
    return res
}