class Solution:
def matrixReshape(self, nums: List[List[int]], r: int, c: int) -> List[List[int]]:
row,col = len(nums),len(nums[0])
#如果行*列大于计算出来的行*列的值,那就直接返回当前nums
if r*c>row*col:
return nums
#将当前nums变成一维的列表
long_nums = []
for num in nums:
long_nums.extend(num)
#每一行从long_nums中取出c个元素来,然后添加到结果列表中去
index = 0
res = []
for i in range(r):
tmp = long_nums[index:index+c]
index = index+c
res.append(tmp)
return res
import numpy as np
return np.asarray(nums).reshape(r, c)
- 拉伸,赋值或者片段截取即可
- 用numpy数组更方便