DEV Community

Shavon Harris
Shavon Harris

Posted on

Shuffle The Array

Today's problem is fairly straightforward. It can be solved with a simple for loop and the push method.

Given the array nums consisting of 2n elements in form [x1,x2,...,xn,y1,y2,...,yn]. we need to rearrange the array into `[x1,y1,x2,y2,...,xn,yn]

Function Signature

`
@param {number[]} nums
@param {number} n
@return {number[]}
`

Examples

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]

The first thing to understand is that 2n elements means the total number of elements in the array is twice the value of n. The first half of the array consists of elements [x1, x2, ..., xn] and the second half consists of elements [y1, y2, ..., yn].

The task is to rearrange the array into [x1, y1, x2, y2, ..., xn, yn].

Example Breakdown

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

Here, nums has 6 elements (2 * 3 = 6).

  • The first half [x1, x2, x3] is [2, 5, 1]
  • The second half [y1, y2, y3] is [3, 4, 7]

We need to combine them like this:

  • Take x1 (which is 2) and y1 (which is 3)
  • Take x2 (which is 5) and y2 (which is 4)
  • Take x3 (which is 1) and y3 (which is 7)

Resulting in [2, 3, 5, 4, 1, 7].

Dive into the code

So how do we approach this with code. Let's create a plan:

  1. Create a function shuffle.
  2. The function takes two parameters: nums and n.
  3. Create an empty array to store the result.
  4. Loop through the first n elements of the array.
  5. Push the current element and the corresponding element from the second half into the result array.
  6. Return the result array.

Image description

Conclusion
Today's problem was a great example of how we can use simple loops and basic array operations to solve a seemingly task.

To recap:

We identified that the array nums consists of 2n elements, split into two halves.
Our goal was to get two halves into a new array in the specified format.
Using a simple for loop and the push method, we created a solution that is both intuitive and effective.

I encourage you to try this problem on your own and see how you can further optimize or modify the solution.

Happy Coding!

Top comments (0)