LeetCode566——Reshape the Matrix
2017-09-12 19:59
399 查看
题意
将一个矩阵转换成指定行列数的新矩阵,若原矩阵元素数目与新矩阵数目不等,则返回新矩阵。
代码
方法一:将原矩阵中的元素依次取出同时放入新矩阵。
此处有两点需要注意:1、通过nums.length确定原矩阵的函数,通过nums[0].length确定原矩阵的列数;
2、通过nums[i/c_original][i%c_original]将原矩阵中的元素依次按行取出。
方法二:先将原矩阵中的元素按行取出放入队列,然后再从队列中存入新矩阵
此方法应该注意的是队列的使用以及
add 在队列尾部增加一个元素
remove 移除并返回队列头部的元素
将一个矩阵转换成指定行列数的新矩阵,若原矩阵元素数目与新矩阵数目不等,则返回新矩阵。
代码
方法一:将原矩阵中的元素依次取出同时放入新矩阵。
public class Solution { public int[][] matrixReshape(int[][] nums, int r, int c) { int r_original=nums.length; int c_original=nums[0].length; if(r_original*c_original==r*c){ int[][] newArray=new int[r][c]; for(int i=0;i<r_original*c_original;i++){ newArray[i/c][i%c]=nums[i/c_original][i%c_original]; } return newArray; } else return nums; } }
此处有两点需要注意:1、通过nums.length确定原矩阵的函数,通过nums[0].length确定原矩阵的列数;
2、通过nums[i/c_original][i%c_original]将原矩阵中的元素依次按行取出。
方法二:先将原矩阵中的元素按行取出放入队列,然后再从队列中存入新矩阵
import java.util.LinkedList; import java.util.Queue; public class Solution2 { public int[][] matrixReshape(int[][] nums, int r, int c){ int r_original=nums.length; int c_original=nums[0].length; if(r_original*c_original==r*c) { Queue <Integer> queue=new LinkedList <> (); for(int i=0;i<nums.length;i++) { for(int j=0;j<nums[0].length;j++) { queue.add(nums[i][j]); } } int[][] result=new int[r][c]; for(int i=0;i<r;i++) { for(int j=0;j<c;j++) { result[i][j]=queue.remove(); } } return result; } else return nums; } }
此方法应该注意的是队列的使用以及
add 在队列尾部增加一个元素
remove 移除并返回队列头部的元素
相关文章推荐
- 【LeetCode】566. Reshape the Matrix(重塑矩阵)
- leetcode 566 Reshape the Matrix
- LeetCode | 566. Reshape the Matrix 简单矩阵循环题
- LeetCode-566:Reshape the Matrix (矩阵整型)-- easy
- Leetcode 566 Reshape the Matrix
- LeetCode:566. Reshape the Matrix
- Array-leetcode 566 Reshape the Matrix
- LeetCode 566. Reshape the Matrix (Easy)
- 【LeetCode】566 Reshape the Matrix
- LeetCode 566 Reshape the Matrix 重置矩阵
- leetcode 数组array之566. Reshape the Matrix
- leetcode 566. Reshape the Matrix 重塑矩阵
- [LeetCode]566. Reshape the Matrix(重塑矩阵)
- LeetCode-566-Reshape the Matrix-E
- LeetCode - 566. Reshape the Matrix (C++) O(n)
- 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(Easy)