mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-04 16:12:47 +08:00
59 lines
2.1 KiB
Markdown
Executable File
59 lines
2.1 KiB
Markdown
Executable File
# [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操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。
|
||
|
||
|
||
|
||
## 解题思路
|
||
|
||
|
||
- 给一个二维数组和 r,c,将这个二维数组“重塑”成行为 r,列为 c。如果可以“重塑”,输出“重塑”以后的数组,如果不能“重塑”,输出原有数组。
|
||
- 这题也是水题,按照题意模拟即可。
|
||
|