LeetCode 566. Reshape the Matrix (Easy)

来源:互联网 发布:名媛风的淑女打扮知乎 编辑:程序博客网 时间:2024/06/06 00:38

题目描述:

In MATLAB, there is a very useful function called ‘reshape’, which can reshape a matrix into a new one with different size but keep its original data.
You’re given a matrix represented by a two-dimensional array, and two positive integers r and c representing the row number and column number of the wanted reshaped matrix, respectively.
The reshaped matrix need to be filled with all the elements of the original matrix in the same row-traversing order as they were.
If the ‘reshape’ operation with given parameters is possible and legal, output the new reshaped matrix; Otherwise, output the original matrix.

Example1:

Input: nums = [[1,2], [3,4]]r = 1, c = 4Output: [[1,2,3,4]]Explanation:The row-traversing of nums is [1,2,3,4]. The new reshaped matrix is a 1 * 4 matrix, fill it row by row by using the previous list.

Example2:

Input: nums = [[1,2], [3,4]]r = 2, c = 4Output: [[1,2], [3,4]]Explanation:There is no way to reshape a 2 * 2 matrix to a 2 * 4 matrix. So output the original matrix.

题目大意:给一个数组,将它重塑成二维数组,如果输入的重塑大小与原数组大小不符(元素总数不同),那么输出原数组。

思路:先判断能不能重塑,再直接模拟一下即可。

c++代码:

class Solution {public:    vector<vector<int>> matrixReshape(vector<vector<int>>& nums, int r, int c) {        if (nums.size() > 0 && nums[0].size() > 0 && nums.size() * nums[0].size() == r * c)        {            vector<vector<int>> ret;            int count = 0;            for (size_t i = 0; i < r; ++i)            {                vector<int> temp;                for (size_t j = 0; j < c; ++j)                {                    temp.push_back(nums[count / nums[0].size()][count % nums[0].size()]);                    ++count;                }                ret.push_back(temp);            }            return ret;        }        return nums;    }};
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 yj男的春天by沈夜焰 沈大成旗舰店 上海沈大成 沈娴秦如凉 千苒君笑 沈钰南衡帝君 沈天君守护 沈天君守护 沈妙言君天阑免费阅读 沈奕斐 沈如筠 沈婷婷 沈孟生 沈安娜个畜生 沈安娜享受什么待遇 沈宏非 衢州沈家花店 沈家洪城重庆火锅 沈大人家的石榴树 沈家湾码头网上订票 沈家湾客运码头网上订票 2019沈家湾客运码头时间表 普陀沈家门酒店 舟山沈家门附近住宿 沈家门小海鲜 舟山沈家门 酒店 沈家门到宁波 上海到沈家门 沈家门住宿攻略 沈家门海鲜 沈家门第一小学 沈家门半升洞码头 沈家门到东极岛船票 沈家门民宿 沈家门吃海鲜攻略 沈家门第四小学 沈家门码头时刻表 沈家门二手房 沈富雄 沈小岑 沈小岑的所有歌曲 沈小福滋味米线餐厅 沈小福