Description
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
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.
Note
1.The height and width of the given matrix is in range [1, 100].
2.The given r and c are all positive.
Solution
First
|
|
Optimization
|
|
Summary
开始不想写这道题,但是发现自己做这道题的速度还是不够快,用了一个很愚蠢的转储方法,复杂度到了O(n^3),其实完全不至于,这种代码很容易成为大题的一小部分,如果这部分写的这么慢,大题不要想顺利做完了。