一. 题目
-
题目
给你一个数组 nums ,数组中有 2n 个元素,按 [x1,x2,…,xn,y1,y2,…,yn] 的格式排列。请你将数组按 [x1,y1,x2,y2,…,xn,yn] 格式重新排列,返回重排后的数组。
-
示例
二. 方法一
-
解题思路
-
解题代码
def shuffle(self, nums: List[int], n: int) -> List[int]: lst = [] for i in range(n): lst.append(nums[i]) lst.append(nums[i + n]) return lst
-
分析
时间复杂度: O(n)
空间复杂度: O(n)
三. 方法二
-
解题思路
- 创建一个列表用于存放重新排列后的数组
- 找规律
- 如果下标小于n, 这重新排列后的下标为:
2n
- 如果下标大于等于n, 这重新排列后的下标为:
2(i - n) + 1
- 如果下标小于n, 这重新排列后的下标为:
-
解题代码
def shuffle(self, nums: List[int], n: int) -> List[int]: lst = [0 for _ in range(2 * n)] for i in range(2 * n): if i < n: lst[2 * i] = nums[i] else: lst[2 * (i - n) + 1] = nums[i] return lst
-
分析
时间复杂度: O(n)
空间复杂度: O(n)