[LeetCode&Python] Problem 566. Reshape the Matrix
2024-09-05 09:13:54
In MATLAB, there is a very useful function called 'reshape', which can reshape a matrix into a new one with different size but keep its original data.
You're given a matrix represented by a two-dimensional array, and two positive integers r and c representing the row number and column number of the wanted reshaped matrix, respectively.
The reshaped matrix need to be filled with all the elements of the original matrix in the same row-traversing order as they were.
If the 'reshape' operation with given parameters is possible and legal, output the new reshaped matrix; Otherwise, output the original matrix.
Example 1:
Input:
nums =
[[1,2],
[3,4]]
r = 1, c = 4
Output:
[[1,2,3,4]]
Explanation:
The row-traversing of nums is [1,2,3,4]. The new reshaped matrix is a 1 * 4 matrix, fill it row by row by using the previous list.
Example 2:
Input:
nums =
[[1,2],
[3,4]]
r = 2, c = 4
Output:
[[1,2],
[3,4]]
Explanation:
There is no way to reshape a 2 * 2 matrix to a 2 * 4 matrix. So output the original matrix.
Note:
- The height and width of the given matrix is in range [1, 100].
- The given r and c are all positive.
class Solution:
def matrixReshape(self, nums, r, c):
"""
:type nums: List[List[int]]
:type r: int
:type c: int
:rtype: List[List[int]]
"""
m=len(nums)
n=len(nums[0]) if m*n!=r*c:
return nums
else:
ans=[]
for i in range(r):
ans0=[None]*c
for j in range(c):
if (i*c+j+1)%n!=0:
ans0[j]=nums[int((i*c+j+1)//n)][(i*c+j+1)%n-1]
else:
ans0[j]=nums[int((i*c+j+1)//n)-1][n-1]
ans.append(ans0)
return ans
最新文章
- Python 基础语法学习笔记
- MVC 知识点学习3(linq to sql)
- “SQLServerAgent当前未运行”问题解决
- django rest framework
- NavMesh名字、层索引、层值之间的转换
- ios 开发中出现的 pointer being freed was not allocated *** set a breakpoint in malloc_error_break to debug
- UISwitch属性
- 【转】ubuntu 11.10(32位系统)下编译android源码
- USACO 2.2 Subset Sums 集合(subset)
- 恢复sudo的权限的命令
- SpringMVC架构的项目,js,css等静态文件导入有问题
- CentOS7 安装 jexus-5.8.2-x64
- 拷贝的表的SQL语句 SELECT INTO 和 INSERT INTO SELECT的用法与区别
- 第3章 Linux上文件的权限管理
- Iris 语录
- Fabric的settings用法
- MSSQL-SELECT&;UPDATE动作要申请的锁
- <;The Art of Readable Code>; 笔记一
- linux命令创建和修改用户及密码
- hadoop english