• [LeetCode] 2022. Convert 1D Array Into 2D Array


    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.
    

    Example 2:

    Input: original = [1,2,3], m = 1, n = 3
    Output: [[1,2,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.
    

    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.

    Constraints:

    • 1 <= original.length <= 5 * 104
    • 1 <= original[i] <= 105
    • 1 <= m, n <= 4 * 104

    将一维数组转变成二维数组。

    给你一个下标从 0 开始的一维整数数组 original 和两个整数 m 和  n 。你需要使用 original 中 所有 元素创建一个 m 行 n 列的二维数组。

    original 中下标从 0 到 n - 1 (都 包含 )的元素构成二维数组的第一行,下标从 n 到 2 * n - 1 (都 包含 )的元素构成二维数组的第二行,依此类推。

    请你根据上述过程返回一个 m x n 的二维数组。如果无法构成这样的二维数组,请你返回一个空的二维数组。

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/convert-1d-array-into-2d-array
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    这是一道关于矩阵的模拟题,用心做即可。把一个一维矩阵转换成一个二维矩阵。注意这里的一个 corner case 是如果一维矩阵的长度不等于二维矩阵的面积的话,就返回一个空的矩阵即可。

    时间O(n)

    空间O(mn)

    Java实现

     1 class Solution {
     2     public int[][] construct2DArray(int[] original, int m, int n) {
     3         // corner case
     4         if (original.length != m * n) {
     5             return new int[0][0];
     6         }
     7 
     8         // normal case
     9         int[][] res = new int[m][n];
    10         for (int i = 0; i < original.length; i++) {
    11             res[i / n][i % n] = original[i];
    12         }
    13         return res;
    14     }
    15 }

    相关题目

    566. Reshape the Matrix

    2022. Convert 1D Array Into 2D Array

    LeetCode 题目总结

  • 相关阅读:
    递归函数及Java范例
    笔记本的硬盘坏了
    “References to generic type List should be parameterized”
    配置管理软件(configuration management software)介绍
    WinCE文件目录定制及内存调整
    使用Silverlight for Embedded开发绚丽的界面(3)
    wince国际化语言支持
    Eclipse IDE for Java EE Developers 与Eclipse Classic 区别
    WinCE Heartbeat Message的实现
    使用Silverlight for Embedded开发绚丽的界面(2)
  • 原文地址:https://www.cnblogs.com/cnoodle/p/15755369.html
Copyright © 2020-2023  润新知