输入:数组 nums(长度为 2n),参数 n。
要求:把 [x1, x2, ..., xn, y1, y2, ..., yn] 重新排列成 [x1, y1, x2, y2, ..., xn, yn]。
输出:重新排列后的数组。
思路
- 直接新建一个结果数组
ans。 - 遍历
0 ~ n-1:- 每次先取
nums[i],再取nums[n+i],依次放入ans。
- 每次先取
- 返回结果数组。
时间复杂度:O(n)
空间复杂度:O(n)
class Solution {
public:
vector<int> shuffle(vector<int>& nums, int n) {
vector<int> ans;
ans.reserve(nums.size()); // 提前分配空间,避免扩容开销
for (int i = 0; i < n; i++) {
ans.push_back(nums[i]);
ans.push_back(nums[n + i]);
}
return ans;
}
};
238

被折叠的 条评论
为什么被折叠?



