Skip to content

Latest commit

 

History

History

1470

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Given the array nums consisting of 2n elements in the form [x1,x2,...,xn,y1,y2,...,yn].

Return the array in the form [x1,y1,x2,y2,...,xn,yn].

 

Example 1:

Input: nums = [2,5,1,3,4,7], n = 3
Output: [2,3,5,4,1,7] 
Explanation: Since x1=2, x2=5, x3=1, y1=3, y2=4, y3=7 then the answer is [2,3,5,4,1,7].

Example 2:

Input: nums = [1,2,3,4,4,3,2,1], n = 4
Output: [1,4,2,3,3,2,4,1]

Example 3:

Input: nums = [1,1,2,2], n = 2
Output: [1,2,1,2]

 

Constraints:

  • 1 <= n <= 500
  • nums.length == 2n
  • 1 <= nums[i] <= 10^3

Related Topics:
Array

Solution 1.

// OJ: https://leetcode.com/problems/shuffle-the-array/
// Author: github.com/lzl124631x
// Time: O(N)
// Space: O(N)
class Solution {
public:
    vector<int> shuffle(vector<int>& nums, int n) {
        vector<int> a, b, ans;
        for (int i = 0; i < 2 * n; ++i) {
            if (i < n) a.push_back(nums[i]);
            else b.push_back(nums[i]);
        }
        for (int i = 0; i < n; ++i) {
            ans.push_back(a[i]);
            ans.push_back(b[i]);
        }
        return ans;
    }
};

Solution 2.

// OJ: https://leetcode.com/problems/shuffle-the-array/
// Author: github.com/lzl124631x
// Time: O(N)
// Space: O(1)
class Solution {
public:
    vector<int> shuffle(vector<int>& nums, int n) {
        vector<int> ans(2 * n);
        for (int i = 0; i < 2 * n; ++i) {
            if (i < n) ans[2 * i] = nums[i];
            else ans[2 * (i - n) + 1] = nums[i];
        }
        return ans;
    }
};