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;
}

最新文章

  1. Fluent Nhibernate之旅(五)--利用AutoMapping进行简单开发
  2. MSSQL数据库安装失败
  3. C++学习笔记31:术语翻译
  4. webForm中的验证控件
  5. sql学习
  6. java.io.IOException: Too many open files
  7. 命令行编译vs2013项目
  8. Spring 事务机制详解
  9. MySQL 基本函数
  10. 学习MVC遇到的问题
  11. 我的Pandas应用场景
  12. Linux下 两台机器文件/文件夹 相互拷贝
  13. 在Gazebo中使用DEM構建起伏地形環境
  14. C++ Sqlite3的基本使用
  15. [Freemarker]自定义时间戳函数
  16. javascript高级程序设计第3版——第3章 基本概念
  17. 转载两篇dedecms的漏洞修复教程
  18. nodejs安装淘宝npm镜像【cnpm】
  19. sql server 用户创建与权限管理
  20. Linux 服务器部署 PgAdmin 4 Server

热门文章

  1. HTML块,含样式的标签
  2. Java组合实体模式~
  3. Autofac基本使用
  4. Retrofit总结(原)
  5. java 三元运算符
  6. SSM框架搭建过程
  7. Java集合框架是什么?说出一些集合框架的优点?
  8. iterators和generators
  9. 深入理解volatile关键字
  10. MTD系统架构和yaffs2使用、Nandflash驱动设计