# 题目描述

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 twopositiveintegersrandcrepresenting therownumber andcolumnnumber of the wanted reshaped matrix, respectively.

The reshaped matrix need to be filled with all the elements of the original matrix in the samerow-traversingorder as they were.

If the 'reshape' operation with given parameters is possible and legal, output the new reshaped matrix; Otherwise, output the original matrix.

Example 1:

`Input:​nums = [[1,2], [3,4]]r = 1, c = 4​Output:​[[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.`

Example 2:

`Input:​nums = [[1,2], [3,4]]r = 2, c = 4​Output:​[[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.`

Note:

1. The height and width of the given matrix is in range [1, 100].

2. The given r and c are all positive.

# Python

`class Solution(object):    def matrixReshape(self, nums, r, c):        """        :type nums: List[List[int]]        :type r: int        :type c: int        :rtype: List[List[int]]        """        if len(nums) * len(nums[0]) != r * c:            return nums        data = [[0 for i in xrange(c)] for j in xrange(r)]        i = 0        j = 0        for row in nums:            for col in row:                data[i][j] = col                j += 1                if j == c:                    j = 0                    i += 1        return data`