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
Solutions
Solution 1: Simulation
We traverse the indices \(i\) in the range \([0, n)\). Each time, we take \(\textit{nums}[i]\) and \(\textit{nums}[i+n]\) and place them sequentially into the answer array.
After the traversal is complete, we return the answer array.
The time complexity is \(O(n)\), and the space complexity is \(O(n)\). Here, \(n\) is the length of the array \(\textit{nums}\).
/** * Note: The returned array must be malloced, assume caller calls free(). */int*shuffle(int*nums,intnumsSize,intn,int*returnSize){int*ans=(int*)malloc(sizeof(int)*n*2);for(inti=0;i<n;i++){ans[2*i]=nums[i];ans[2*i+1]=nums[i+n];}*returnSize=n*2;returnans;}