leetcode.矩阵.566重塑矩阵-Java
2024-10-07 17:31:44
1. 具体题目
给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。如果具有给定参数的reshape操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。
示例 1: 输入: nums = [[1,2], [3,4]] r = 1, c = 4 输出: [[1,2,3,4]] 解释: 行遍历nums的结果是 [1,2,3,4]。新的矩阵是 1 * 4 矩阵, 用之前的元素值一行一行填充新矩阵。
2. 思路分析
没有简便算法,只能将原矩阵中元素依次填入新矩阵中。对于新矩阵的行和列设置两层 for 循环,对于原矩阵,填入时通过索引判断是否需要换行。
3. 代码
public int[][] matrixReshape(int[][] nums, int r, int c) {
int n = nums.length;
int m = nums[0].length;
if(n * m != r * c) return nums;
n = 0; m = 0;
int[][] ans = new int[r][c];
for(int i = 0; i < r; i++){
for(int j = 0; j < c; j++){
ans[i][j] = nums[n][m];
m++;
if(m == nums[0].length){
m = 0;
n++;
}
}
}
return ans;
}
最新文章
- Fluent Nhibernate之旅(五)--利用AutoMapping进行简单开发
- MSSQL数据库安装失败
- C++学习笔记31:术语翻译
- webForm中的验证控件
- sql学习
- java.io.IOException: Too many open files
- 命令行编译vs2013项目
- Spring 事务机制详解
- MySQL 基本函数
- 学习MVC遇到的问题
- 我的Pandas应用场景
- Linux下 两台机器文件/文件夹 相互拷贝
- 在Gazebo中使用DEM構建起伏地形環境
- C++ Sqlite3的基本使用
- [Freemarker]自定义时间戳函数
- javascript高级程序设计第3版——第3章 基本概念
- 转载两篇dedecms的漏洞修复教程
- nodejs安装淘宝npm镜像【cnpm】
- sql server 用户创建与权限管理
- Linux 服务器部署 PgAdmin 4 Server