跳至正文

每日一题——2022. 将一维数组转变成二维数组

2022. 将一维数组转变成二维数组

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

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

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

public class Solution {
    public int[][] Construct2DArray(int[] original, int m, int n) {
        if(m*n != original.Length)
        {
            int[][] errorArray = new int[0][];
            return errorArray;
        }

        int[][] ans = new int[m][];
        int temp = 0;
        int index = 0;

        while(temp <= original.Length - n)
        {
            int[] array = new int[n];
            int j = 0;
            for(int i = temp;i<= temp+n-1;i++)
            {
                array[j] = original[i];
                j++;
            }
            ans[index] = array;
            temp += n;
            index++;
        }
        
        return ans;
    }
}

思路其实挺简单的 就是模拟了一下一维数组怎么塞到交错数组里的

比较坑人的地方在于输出[]

你不能直接输出null

而是应该返回一个长度为0的数组

把我整麻了都

发表评论

您的电子邮箱地址不会被公开。