# 1470. Shuffle the Array

(LeetCode easy question)

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`

Since the question holds the self-explanation of what this question means, I am sure you would have understood the question by now.

Let us talk about the approach now :

# Approach :

The first thing that strikes my mind is to let us the two-pointer approach. This is just a basic approach that uses two pointers at a time.

I will use two pointers i and j; i starts from the beginning i.e x1 value and j starts from y1 values. Just keep storing the elements which point at x1 and then y1 and so on, keep incrementing the pointers each time.

The code is as given below :

**class Solution {**

public:

vector<int> shuffle(vector<int>& nums, int n) {

vector<int>ans;

int i = 0, j=n;

while(i<n && j<(2*n))

{

ans.push_back(nums[i]);

ans.push_back(nums[j]);

i++;

j++;

}

return ans;

}

};

So what will be the **time complexity** now? Well, it is **O(n)** because still I am traversing the whole array. The **space complexity will be O(n) **as well because I am using a vector to store the array elements in the given format.

I hope this makes you clear so as how to solve this question. Try to dry run as many examples possible to understand it better.

**Till then keep coding & keep learning!!🙌💻**

Since you enjoyed reading my blog , why not buy me a coffee and supoort my work here!! https://www.buymeacoffee.com/sukanyabharati ☕