int型变量矩阵转换_蹲在马桶看算法(Day3—LeetCode之NO.566 重构矩阵)

题目描述

7ad11e835e3a34f1a695795060145f5a.png

重构矩阵:给定一个row*col的矩阵,你需要写一个函数将其转换为给定r*c的矩阵。

必要性:源矩阵(sourcrMatrix)的 row*col值要与目的矩阵矩阵(destMatrix)的row*col值相等,不满足必要性直接返回源矩阵即可。

思路1(直接思路):先将二维数组(源矩阵)转换成一维数组,然后将一位数组分成row组即可。但是这样做时间和空间上损耗较大。提交上去会提示Time limit exceeded。

思路2见代码(比较巧妙)

class Solution { public int[][] matrixReshape(int[][] nums, int r, int c) {if (nums.length*nums[0].length!=r*c) return nums;int n=0;//借助变量n直接转换到destMatrixint[][] res=new int[r][c];for (int i = 0; i < nums.length; i++) {for (int j = 0; j < nums[0].length; j++,n++) { // 除c是分成r组(行)。 res[n/c][n%c]=nums[i][j]; } } return res; } }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值