566. 重塑矩阵

566. 重塑矩阵

在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原始数据。

给你一个由二维数组 mat 表示的 m x n 矩阵,以及两个正整数 r 和 c ,分别表示想要的重构的矩阵的行数和列数。

重构后的矩阵需要将原始矩阵的所有元素以相同的 行遍历顺序 填充。

如果具有给定参数的 reshape 操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。
在这里插入图片描述
在这里插入图片描述
此题解法:
1.先将原始的矩阵嵌套列表全展开成一个大列表。
2.然后判断该大列表能否转换成目标矩阵列表,判断依据为:大列表的长度是否等于目标矩阵列表的行数*目标矩阵列表的列数。如果不等则输出原始矩阵列表。
3.如果等于则将大列表以目标矩阵的列数c为步长进行划分,划分后添加到一个新列表中返回即可。

class Solution:
    def matrixReshape(self, mat: List[List[int]], r: int, c: int) -> List[List[int]]:
        mats=[]
        mat1=[]
        for i in range(len(mat)):
            for j in range(len(mat[0])):
                mats.append(mat[i][j])
        if r!=len(mats)/c:
            return mat 
        else:
            for i in range(0,len(mats),c):
                mat1.append(mats[i:i+c])
            return mat1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值