leetcode 566. Reshape the Matrix

来源:互联网 发布:爱易编程工具箱 编辑:程序博客网 时间:2024/06/13 03:52

1.题目
Reshape the Matrix
例1:
Input:

nums = [[1,2], [3,4]]r = 1, c = 4

Output:

[[1,2,3,4]]

Explanation:
元素横向展开,2*2的矩阵转为1*4的矩阵
例 2:
Input:

nums = [[1,2], [3,4]]r = 2, c = 4

Output:

[[1,2], [3,4]]

Explanation:
2*2的矩阵无法转为2*4的矩阵,所以输出原矩阵。
2.解法
(1)origin_r * origin_c 的矩阵 reshape为 r*c的矩阵,需要满足:
origin_r * origin_c=r*c
(2)元素位置对应的关系
如果将矩阵横向展开为一维数组,元素个数为n=origin_r * origin_c
在元素在一维数组中对应的位置i:
原矩阵位置[i/origin_c,i%origin_c]
新矩阵位置[i/c,i%c]
3.代码
c++

    vector<vector<int>> matrixReshape(vector<vector<int>>& nums, int r, int c) {        //原矩阵的行,列        int origin_r = nums.size();        int origin_c = nums[0].size();        int n = origin_c*origin_r;//元素个数        if (n == r*c) {            //新矩阵            vector<vector<int>> newMaxtrix(r, vector<int>(c, 0));            for (int i = 0; i < n; i++)                newMaxtrix[i / c][i%c] = nums[i / origin_c][i%origin_c];            return newMaxtrix;        }        else            return nums;    }

python

    def matrixReshape(self, nums, r, c):        origin_r=len(nums)#行        origin_c=len(nums[0])#列        if origin_c*origin_r==r*c:#可以reshape            temp=[num for row in nums for num in row]#展开成一维数组            newMatrix=[[0 for j in xrange(c)] for i in xrange(r)]            for i in xrange(r):                for j in xrange(c):                    newMatrix[i][j]=temp[i*c+j]            return newMatrix        else:#无法reshape            return nums
2 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 淘宝给客户退款后还给差评怎么办 淘宝账号处于下单保护状态怎么办 淘宝卖家物流单号写错了怎么办 有个人给我发直播消息怎么办 网贷申请多了现在秒拒怎么办 顺丰快递寄的瓜果坏了怎么办 淘宝退货快递公司填错了怎么办 不小心把淘宝账号注销了怎么办 腾讯视频会员开通一个月贵怎么办 微交易买美国指数输了四千块怎么办 淘宝地址中包含了违禁词怎么办 微信支付失败但是钱扣了怎么办 支付宝向别人收款交易关闭了怎么办 从淘宝充的晋江币充值异常怎么办 接手转让店铺会员要求退卡怎么办 转转买手机卖家拒绝退款怎么办 淘宝买的东西电话号码留错了怎么办 平板电脑没电关机没保存文件怎么办 恢复出厂设置需要谷歌账号怎么办 华为手机云端里照片删除了怎么办 客户退货卖家一直没收到货怎么办 在淘宝买到假货投诉不管用怎么办 差评不接电话不回旺旺不要钱怎么办 饿了么同行恶意差评怎么办 苹果手机更新后淘宝用不了怎么办 淘宝网快递丢件了买家怎么办 评价后忘了截图五星好评怎么办 在淘宝被骗了好评返现怎么办 苹果4s微信版本过低怎么办 微信版本太低无法登录怎么办 苹果4微信版本低登录不了怎么办 安卓手机微信版本低登录不了怎么办 苹果微信版本低登录不了怎么办 安装包与当前版本不兼容怎么办 游戏与苹果手机系统不兼容怎么办 闲鱼买家申请退款不退货怎么办 在淘宝买的战地1登录不了怎么办 支付宝转账到注销的账号怎么办 支付宝用户支付密码被锁定怎么办 淘宝提现需要的手机宝令怎么办 手机换号码了支付宝账号怎么办