Files
2020-08-07 17:06:53 +08:00

59 lines
2.1 KiB
Markdown
Executable File
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# [566. Reshape the Matrix](https://leetcode.com/problems/reshape-the-matrix/)
## 题目
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:**
1. The height and width of the given matrix is in range [1, 100].
2. The given r and c are all positive.
## 题目大意
在 MATLAB 中,有一个非常有用的函数 reshape它可以将一个矩阵重塑为另一个大小不同的新矩阵但保留其原始数据。
给出一个由二维数组表示的矩阵以及两个正整数r和c分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。如果具有给定参数的reshape操作是可行且合理的则输出新的重塑矩阵否则输出原始矩阵。
## 解题思路
- 给一个二维数组和 rc将这个二维数组“重塑”成行为 r列为 c。如果可以“重塑”输出“重塑”以后的数组如果不能“重塑”输出原有数组。
- 这题也是水题,按照题意模拟即可。