这道题要求将一维数组按行优先顺序转换成 m 行 n 列的二维数组,元素个数必须恰好等于 m * n,否则返回空数组。

Java 实现

```java
public int[][] construct2DArray(int[] original, int m, int n) {
    // 元素个数不匹配,无法构成合法二维数组
    if (original.length != m * n) {
        return new int[0][0]; // 或 new int[][]{}
    }

    int[][] result = new int[m][n];
    for (int i = 0; i < original.length; i++) {
        result[i / n][i % n] = original[i]; // 行号 = i / n,列号 = i % n
    }
    return result;
}
```

说明

· 时间复杂度:O(m * n)
· 空间复杂度:O(1)(除返回结果外)

如果还需要 Go 或其他语言版本,告诉我即可。

 

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐