题目
给你一个数组 nums ,数组中有 2n 个元素,按[x1,x2,…,xn,y1,y2,…,yn] 的格式排列。请你将数组按 [x1,y1,x2,y2,…,xn,yn] 格式重新排列,返回重排后的数组。
思路
将数组遍历,通过判断元素的下标是奇数还是偶数来依次存放在新的数组中,如果为偶数,那么新数组的元素则为原数组中的下标的0,1,2,如果为奇数,那么新数组的元素则为原数组中的下标的3,4,5个,依次存放得到新的数组.
问题
想问题的角度还是不够全面 看了别人代码后觉得自己这种太麻烦
public int[] shuffle(int[] nums, int n) {
int [] ret = new int[2*n];
for(int i=0;i<n;i++){
ret[i*2]=nums[i];
ret[i*2+1]= nums[n+i];
}
return ret;
}
代码
public class Shuffle {
public static void main(String[] args) {
int[] nums = {1, 2, 3, 4, 5, 6};
int[] result = shuffle(nums, 3);
for (int i = 0; i < result.length; i++) {
System.out.println(result[i]);
}
}
public static int[] shuffle(int[] nums, int n) {
int j = 0;
int k = 0;
int[] result = new int[nums.length];
for (int i = 0; i < nums.length; i++) {
if (i % 2 == 0) {
result[i] = nums[j];
j++;
} else {
result[i] = nums[k + n];
k++;
}
}
return result;
}
}