LeetCode Daily 3
2022-1-1 T2022
2022的第一题??
题目描述:
给你一个下标从 0 开始的一维整数数组 original 和两个整数 m 和 n 。你需要使用 original 中 所有 元素创建一个 m 行 n 列的二维数组。 original 中下标从 0 到 n - 1 (都 包含 )的元素构成二维数组的第一行,下标从 n 到 2 * n - 1 (都 包含 )的元素构成二维数组的第二行,依此类推。 请你根据上述过程返回一个 m x n 的二维数组。如果无法构成这样的二维数组,请你返回一个空的二维数组。
示例:
输入: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] ,构成二维数组的第二行。
思路:
正常找规律,i * n + j 的推导,注意返回空值为{}!
代码:
class Solution { public: vectorint>> construct2DArray(vector<int>& original, int m, int n) { vector int>> ans(m); for(int i = 0; i < m; i++) { ans[i].resize(n); } if(original.size() != m * n) return {}; for(int i = 0; i < m; i++) { for(int j = 0; j < n; j++) { ans[i][j] = original[i * n + j]; } } return ans; } };