日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

LeetCode简单题之重塑矩阵

發(fā)布時間:2023/11/28 生活经验 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode简单题之重塑矩阵 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題目

在 MATLAB 中,有一個非常有用的函數(shù) reshape ,它可以將一個 m x n 矩陣重塑為另一個大小不同(r x c)的新矩陣,但保留其原始數(shù)據(jù)。
給你一個由二維數(shù)組 mat 表示的 m x n 矩陣,以及兩個正整數(shù) r 和 c ,分別表示想要的重構(gòu)的矩陣的行數(shù)和列數(shù)。
重構(gòu)后的矩陣需要將原始矩陣的所有元素以相同的 行遍歷順序 填充。
如果具有給定參數(shù)的 reshape 操作是可行且合理的,則輸出新的重塑矩陣;否則,輸出原始矩陣。
示例 1:

輸入:mat = [[1,2],[3,4]], r = 1, c = 4
輸出:[[1,2,3,4]]
示例 2:

輸入:mat = [[1,2],[3,4]], r = 2, c = 4
輸出:[[1,2],[3,4]]
提示:
m == mat.length
n == mat[i].length
1 <= m, n <= 100
-1000 <= mat[i][j] <= 1000
1 <= r, c <= 300
來源:力扣(LeetCode)
??矩陣能否重塑成功,取決于它們的元素個數(shù)是否相等所以行列數(shù)相乘必須相等才能進行接下來的操作。重塑的基本操作就是遍歷原矩陣然后將元素一個一個的放入新的矩陣中,當(dāng)然根據(jù)python的特性也可以直接在原來的矩陣上進行拼接,但是這可能會遇到有一些情況使得我們不得不轉(zhuǎn)置矩陣,所以采取一個一個放入的策略就是最方便和最兼容的。

class Solution:def matrixReshape(self, mat: List[List[int]], r: int, c: int) -> List[List[int]]:m=len(mat)n=len(mat[0])if m*n!=r*c:return mat#這里不能用M=r*[c*[0]],python組內(nèi)相同的列表指針是同一個。M=[[0] * c for i in range(r)]x=0y=0for i in range(m):for j in range(n):M[x][y]=mat[i][j]y+=1if y==c:y=0x+=1return M

總結(jié)

以上是生活随笔為你收集整理的LeetCode简单题之重塑矩阵的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。