2022. 将一维数组转变成二维数组
生活随笔
收集整理的這篇文章主要介紹了
2022. 将一维数组转变成二维数组
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2022. 將一維數組轉變成二維數組
給你一個下標從 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?1045 * 10^45?104
1 <= original[i] <= 10510^5105
1 <= m, n <= 4?1044 * 10^44?104
解題思路
代碼
class Solution { public:vector<vector<int>> construct2DArray(vector<int>& original, int m, int n) {if (original.size()!=m*n) return vector<vector<int>>{};vector<vector<int>> v(m,vector<int>(n,0));int idx(0);for (int i = 0; i < m; ++i) {for (int j = 0; j < n; ++j) {v[i][j]=original[idx++];}}return v;} };總結
以上是生活随笔為你收集整理的2022. 将一维数组转变成二维数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 备孕期间梦到小孩好吗
- 下一篇: 2057. 值相等的最小索引