leetcode2022_go_将一维数组转变成二维数组

createh51周前 (05-15)技术教程11

题目

给你一个下标从 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 * 104

1 <= original[i] <= 105

1 <= m, n <= 4 * 104

解题思路分析

1、遍历;时间复杂度O(n),空间复杂度O(n)

func construct2DArray(original []int, m int, n int) [][]int {
   total := len(original)
   if n*m != total {
      return nil
   }
   res := make([][]int, 0)
   index := 0
   for i := 0; i < m; i++ {
      temp := make([]int, 0)
      for j := 0; j < n; j++ {
         temp = append(temp, original[index])
         index++
      }
      res = append(res, temp)
   }
   return res
}

2、遍历;时间复杂度O(n),空间复杂度O(n)

func construct2DArray(original []int, m int, n int) [][]int {
   total := len(original)
   if n*m != total {
      return nil
   }
   res := make([][]int, 0)
   for i := 0; i < total; i = i + n {
      res = append(res, original[i:i+n])
   }
   return res
}

总结

Easy题目,直接遍历即可

相关文章

C语言一维数组,到底是什么一回事?细细道来

一维数组定义和使用一维数组的定义格式如下:数据类型 数组名 [常量值];格式分析:(1) 数据类型,表示要在数组中,存放数据的类型。例如,要存放整数值,可以是int类型;要存放字符,可以是char类型...

原来C语言多维数组这么好玩!带你轻松拿捏

程序员Feri一名12年+的程序员,做过开发带过团队创过业,擅长Java、鸿蒙、嵌入式、人工智能等开发,专注于程序员成长的那点儿事,希望在成长的路上有你相伴!君志所向,一往无前!在C语言的世界里,多维...

C语言-闲聊一维、二维数组

①若a[i]为一维数组则有,a[0],为数组的一个元素。a[i]=*(&a[i]),为数组的一个元素。a+i=&a[i],为元素a[i]的地址。*(*(a+i))=*(*&a[...

C语言中的一维数组理解

在C语言中,数组作为一种最常见的数据集,它属于C语言类型定义的构造类型,它中间的每一个成员类型完全一致,也就是说只要一定义了一维数组的数据类型,那么,它中间的元素就必须全部是这种类型,在数组中,所有...

60.一维数组的应用 讲解VB中一维数组的应用。

任务实施2:计算一个班级45名学生的语文考试成绩的平均分。它给出的界面是单击输入,单击输入计算按钮就会弹出输入框,请输入第几位学生的语文成绩。输完语文成绩之后会弹出一个消息框显示语文成绩的平均分。这是...

大话C语言:数组

1 数组概述数组是若干个相同类型的变量在内存中有序存储的集合。数组是 C 语言中的一种数据结构,用于存储一组具有相同数据类型的数据。数组在内存中会开辟一块连续的空间数组中的每个元素可以通过一个索引(下...