抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

Problem: 1470. 重新排列数组

思路

由题可知,x 的部分被放在 0~n/2-1 处,y 的部分放在 n/2~n 处,而重排是按照 [x1,y1,,xn,yn][x_1, y_1, ……, x_n, y_n] 摆放。

解题方法

解题方法如 Code 所示。

复杂度

时间复杂度:

O(n)O(n)

空间复杂度:

O(n)O(n)

Code

[]
1
2
3
4
5
6
7
int* shuffle(int* nums, int numsSize, int n, int* returnSize){
int *q = (int*)malloc(sizeof(int)*2*n);
*returnSize = 2*n;
for(int i = 0, p = 0; i < numsSize/2; i++, p += 2) q[p] = nums[i];
for(int i = numsSize/2, p = 1; i < numsSize; i++, p += 2) q[p] = nums[i];
return q;
}