leet-code/src/main/java/leetcode/editor/cn/Convert1dArrayInto2dArray.java
2022-01-01 23:31:40 +08:00

87 lines
2.6 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//给你一个下标从 0 开始的一维整数数组 original 和两个整数 m 和 n 。你需要使用 original 中 所有 元素创建一个 m 行 n 列的二
//维数组。
//
// original 中下标从 0 到 n - 1 (都 包含 )的元素构成二维数组的第一行,下标从 n 到 2 * n - 1 (都 包含 )的元素构成二维
//数组的第二行,依此类推。
//
// 请你根据上述过程返回一个 m x n 的二维数组。如果无法构成这样的二维数组,请你返回一个空的二维数组。
//
//
//
// 示例 1
//
// 输入original = [1,2,3,4], m = 2, n = 2
//输出:[[1,2],[3,4]]
//解释:
//构造出的二维数组应该包含 2 行 2 列。
//original 中第一个 n=2 的部分为 [1,2] ,构成二维数组的第一行。
//original 中第二个 n=2 的部分为 [3,4] ,构成二维数组的第二行。
//
//
// 示例 2
//
// 输入original = [1,2,3], m = 1, n = 3
//输出:[[1,2,3]]
//解释:
//构造出的二维数组应该包含 1 行 3 列。
//将 original 中所有三个元素放入第一行中,构成要求的二维数组。
//
//
// 示例 3
//
// 输入original = [1,2], m = 1, n = 1
//输出:[]
//解释:
//original 中有 2 个元素。
//无法将 2 个元素放入到一个 1x1 的二维数组中,所以返回一个空的二维数组。
//
//
// 示例 4
//
// 输入original = [3], m = 1, n = 2
//输出:[]
//解释:
//original 中只有 1 个元素。
//无法将 1 个元素放满一个 1x2 的二维数组,所以返回一个空的二维数组。
//
//
//
//
// 提示:
//
//
// 1 <= original.length <= 5 * 10⁴
// 1 <= original[i] <= 10⁵
// 1 <= m, n <= 4 * 10⁴
//
// Related Topics 数组 矩阵 模拟 👍 96 👎 0
package leetcode.editor.cn;
import java.util.Arrays;
//2022:将一维数组转变成二维数组
class Convert1dArrayInto2dArray {
public static void main(String[] args) {
//测试代码
Solution solution = new Convert1dArrayInto2dArray().new Solution();
solution.construct2DArray(new int[]{1, 2}, 1, 1);
}
//力扣代码
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
public int[][] construct2DArray(int[] original, int m, int n) {
if (m * n != original.length) {
return new int[][]{};
}
int[][] result = new int[m][n];
for (int i = 0; i < m; i++) {
System.arraycopy(original, i * n, result[i], 0, n);
}
return result;
}
}
//leetcode submit region end(Prohibit modification and deletion)
}