“This is the 7th day of my participation in the Gwen Challenge in November. Check out the details: The Last Gwen Challenge in 2021.”

describe

You are given a 0-indexed 1-dimensional (1D) integer array original, and two integers, m and n. You are tasked with creating a 2-dimensional (2D) array with m rows and n columns using all the elements from original.

The elements from indices 0 to n – 1 (inclusive) of original should form the first row of the constructed 2D array, the elements from indices n to 2 * n – 1 (inclusive) should form the second row of the constructed 2D array, and so on.

Return an m x n 2D array constructed according to the above procedure, or an empty 2D array if it is impossible.

Example 1:

Input: original = [1,2,3,4], m = 2, n = 2
Output: [[1,2],[3,4]]
Explanation:
The constructed 2D array should contain 2 rows and 2 columns.
The first group of n=2 elements in original, [1,2], becomes the first row in the constructed 2D array.
The second group of n=2 elements in original, [3,4], becomes the second row in the constructed 2D array.
Copy the code

Example 2:

Input: original = [1,2,3], m = 1, n = 3 Output: [[1, 3]] Explanation: The constructed 2D array should contain 1 row and 3 columns. Put all three elements in original into the first row of the constructed 2D array.Copy the code

Example 3:

Input: original = [1,2], m = 1, n = 1
Output: []
Explanation:
There are 2 elements in original.
It is impossible to fit 2 elements in a 1x1 2D array, so return an empty 2D array.
Copy the code

Example 4:

Input: original = [3], m = 1, n = 2
Output: []
Explanation:
There is 1 element in original.
It is impossible to make 1 element fill all the spots in a 1x2 2D array, so return an empty 2D array.
Copy the code

Note:

1 <= original.length <= 5 * 10^4
1 <= original[i] <= 10^5
1 <= m, n <= 4 * 104^
Copy the code

parsing

Given a one-dimensional list original indexed from 0, with two integers m and n, our task is to create a two-dimensional list of m rows and n columns using the values in original. Elements with original indexes 0 to n-1 inclusive should form the first row of the constructed two-dimensional array, elements with indexes N to 2 * n-1 inclusive should form the second row of the constructed two-dimensional array, and so on.

Returns an M x N two-dimensional array constructed as described above, or an empty two-dimensional array if that is not possible.

The topic dry so long, in fact very simple, is a paper tiger, one can not play! Ideas:

  • If m*n is not the same length as Original, return the empty list
  • Otherwise, initialize a result and append the result to n original elements at a time from left to right
  • Result is returned when the traversal is complete

answer

class Solution(object): def construct2DArray(self, original, m, n): """ :type original: List[int] :type m: int :type n: int :rtype: List[List[int]] """ if m*n! =len(original) : return [] result = [] for i in range(m): result.append(original[i*n:(i+1)*n]) return resultCopy the code

The results

Given in the Python online submissions for converting 1D arrays Into 2D arrays. Memory Usage: 10000 ms Given in Python online submissions for Convert 1D Array Into 2D Array.Copy the code

Original link: leetcode.com/problems/co…

Your support is my biggest motivation