566 重塑矩陣

2022-06-15 14:00:15 字數 1076 閱讀 8847

在matlab中,有乙個非常有用的函式 reshape,它可以將乙個矩陣重塑為另乙個大小不同的新矩陣,但保留其原始資料。

給出乙個由二維陣列表示的矩陣,以及兩個正整數r和c,分別表示想要的重構的矩陣的行數和列數。

重構後的矩陣需要將原始矩陣的所有元素以相同的行遍歷順序填充。

如果具有給定引數的reshape操作是可行且合理的,則輸出新的重塑矩陣;否則,輸出原始矩陣。

原題請參考鏈結

方法一 【暴力破解】

class solution:

def matrixreshape(self, nums: list[list[int]], r: int, c: int) -> list[list[int]]:

row = len(nums)

if row == 0:

return

col = len(nums[0])

if row * col != r*c:

return nums

num =

for i in range(row):

for j in range(col):

f = 0

nums =

for i in range(r):

ans =

for j in range(c):

f += 1

return nums

方法二 【數學】
class solution:

def matrixreshape(self, nums: list[list[int]], r: int, c: int) -> list[list[int]]:

m, n = len(nums), len(nums[0])

if m * n != r * c:

return nums

ans = [[0] * c for _ in range(r)]

for x in range(m * n):

ans[x // c][x % c] = nums[x // n][x % n]

return ans

566 重塑矩陣

在matlab中,有乙個非常有用的函式reshape,它可以將乙個矩陣重塑為另乙個大小不同的新矩陣,但保留其原始資料。給出乙個由二維陣列表示的矩陣,以及兩個正整數r和c,分別表示想要的重構的矩陣的行數和列數。重構後的矩陣需要將原始矩陣的所有元素以相同的行遍歷順序填充。如果具有給定引數的reshape...

566 重塑矩陣

在matlab中,有乙個非常有用的函式 reshape,它可以將乙個矩陣重塑為另乙個大小不同的新矩陣,但保留其原始資料。給出乙個由二維陣列表示的矩陣,以及兩個正整數r和c,分別表示想要的重構的矩陣的行數和列數。重構後的矩陣需要將原始矩陣的所有元素以相同的行遍歷順序填充。如果具有給定引數的reshap...

566 重塑矩陣

在matlab中,有乙個非常有用的函式 reshape,它可以將乙個矩陣重塑為另乙個大小不同的新矩陣,但保留其原始資料。給出乙個由二維陣列表示的矩陣,以及兩個正整數r和c,分別表示想要的重構的矩陣的行數和列數。重構後的矩陣需要將原始矩陣的所有元素以相同的行遍歷順序填充。如果具有給定引數的reshap...