1929. 数组串联
大约 2 分钟
1929. 数组串联
- 标签:数组
- 难度:简单
题目链接
题目大意
描述:给定一个长度为 的整数数组 。
要求:构建一个长度为 的答案数组 ,答案数组下标从 开始计数 ,对于所有 的 ,满足下述所有要求:
- 。
- 。
具体而言, 由两个 数组「串联」形成。
说明:
- 。
- 。
- 。
示例:
- 示例 1:
输入:nums = [1,2,1]
输出:[1,2,1,1,2,1]
解释:数组 ans 按下述方式形成:
- ans = [nums[0],nums[1],nums[2],nums[0],nums[1],nums[2]]
- ans = [1,2,1,1,2,1]
- 示例 2:
输入:nums = [1,3,2,1]
输出:[1,3,2,1,1,3,2,1]
解释:数组 ans 按下述方式形成:
- ans = [nums[0],nums[1],nums[2],nums[3],nums[0],nums[1],nums[2],nums[3]]
- ans = [1,3,2,1,1,3,2,1]
解题思路
思路 1:按要求模拟
- 定义一个数组变量(列表) 作为答案数组。
- 然后按顺序遍历两次数组 中的元素,并依次添加到 的尾部。最后返回 。
思路 1:代码
class Solution:
def getConcatenation(self, nums: List[int]) -> List[int]:
ans = []
for num in nums:
ans.append(num)
for num in nums:
ans.append(num)
return ans
思路 1:复杂度分析
- 时间复杂度:,其中 为数组 的长度。
- 空间复杂度:。如果算上答案数组的空间占用,则空间复杂度为 。不算上则空间复杂度为 。
思路 2:利用运算符
Python 中可以直接利用 +
号运算符将两个列表快速进行串联。即 return nums + nums
。
思路 2:代码
class Solution:
def getConcatenation(self, nums: List[int]) -> List[int]:
return nums + nums
思路 2:复杂度分析
- 时间复杂度:,其中 为数组 的长度。
- 空间复杂度:。如果算上答案数组的空间占用,则空间复杂度为 。不算上则空间复杂度为 。