LeetCode 566. Reshape the Matrix
来源:互联网 发布:电缆价格计算软件 编辑:程序博客网 时间:2024/06/10 07:44
问题描述
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.
问题分析
给定二维数组nums。给定一个转换后的数组的行r和列c。可以依次遍历nums,然后计算在结果数组中的位置。
算法实现
public int[][] matrixReshape(int[][] nums, int r, int c) { if (nums == null || nums.length == 0 || nums[0].length == 0) { return nums; } int row = nums.length; int colum = nums[0].length; if (row * colum != r * c) {//输入的数字不合法 return nums; } int[][] result = new int[r][c]; int count = 0;//在一维数组中的位置 for (int i = 0; i < row; i++) { for (int j = 0; j < colum; j++) { int targetRow = count / c; int targetCol = count % c; result[targetRow][targetCol] = nums[i][j]; count++; } } return result; }
- leetcode 566. Reshape the Matrix
- LeetCode 566. Reshape the Matrix
- [LeetCode]566. Reshape the Matrix
- [leetcode]566. Reshape the Matrix
- LeetCode:566. Reshape the Matrix
- leetcode 566. Reshape the Matrix
- LeetCode | 566. Reshape the Matrix
- leetcode-566. Reshape the Matrix
- LeetCode 566.Reshape the Matrix
- LeetCode: 566. Reshape the Matrix
- LeetCode-566. Reshape the Matrix
- LeetCode * 566.Reshape the Matrix
- LeetCode: 566. Reshape the Matrix
- leetcode.566.Reshape the Matrix
- LeetCode 566. Reshape the Matrix
- [LeetCode] 566. Reshape the Matrix
- 【LeetCode】566. Reshape the Matrix
- [LeetCode]566. Reshape the Matrix
- android:padding和android:layout_margin的区别
- 基于Dragonboard 410c的总线控制之I2C(二)
- UVA-1608 Non-boring sequences
- linux查看大文件命令
- 解决360杀毒误报病毒的案例HEUR/QVM03.0.7E2A.Malware.Gen
- LeetCode 566. Reshape the Matrix
- cookie模板
- iOS高级编程 runtime
- JSP状态管理
- 运行时值注入Bean
- 基于Qt的截图工具,实现截图后进行编辑
- Linux中软件包安装(rpm和yum)
- AngularJS2 学习笔记——TypeScript
- 利用select直接insert数据