欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Leetcode 转置矩阵

程序员文章站 2024-03-22 09:49:04
...

给定一个矩阵 A, 返回 A 的转置矩阵。

矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。

 

示例 1:

输入:[[1,2,3],[4,5,6],[7,8,9]]
输出:[[1,4,7],[2,5,8],[3,6,9]]
示例 2:

输入:[[1,2,3],[4,5,6]]
输出:[[1,4],[2,5],[3,6]]
 

提示:

1 <= A.length <= 1000
1 <= A[0].length <= 1000


链接:https://leetcode-cn.com/problems/transpose-matrix

 

思路:注意动态分配的下标,行列转换。

int** transpose(int** A, int ASize, int* AColSize, int* returnSize, int** returnColumnSizes){
    int i, j;
    int **ret;
    
    *returnSize = *AColSize;
    *returnColumnSizes = malloc(sizeof(int) * *AColSize);
    
    ret = malloc(sizeof(int *) * *AColSize);
    
    
    for(i = 0; i < *AColSize; i++) {
        (*returnColumnSizes)[i] = ASize;
        ret[i] = malloc(sizeof(int) * ASize);        
    }
    
    
    for(i = 0; i < *AColSize; i++)
        for(j = 0; j < ASize; j++)   
            ret[i][j]= A[j][i];

    return ret;
    
}