Код: Выделить всё
public int[] shuffle(int[] nums, int n) {
int temp1 = nums[1];
int temp2 = 0;
int i = 1; int j = n;
while (i < n - 1 && j < nums.length) {
System.out.println(i + " " + j + " " + temp1 + " " + temp2 + " " + Arrays.toString(nums));
temp2 = temp1;
nums[i] = nums[j];
i++; j++;
System.out.println(i + " " + j + " " + temp1 + " " + temp2 + " " + Arrays.toString(nums));
temp1 = nums[i];
nums[i] = temp2;
i++;
System.out.println(i + " " + j + " " + temp1 + " " + temp2 + " " + Arrays.toString(nums));
}
return nums;
}
Нам нужно вернуть массив в форме [x1,y1,x2,y2,...,xn,yn.
Я попробовал это решение, получилось O (logN) время. Это сработало в 50% тестовых случаев, но не в остальных. Думаю, здесь необходимо внести небольшие изменения. Я думаю, никто не использовал этот подход. Пожалуйста, если кто-то может помочь мне доработать алгоритм, помогите мне использовать этот подход.
Подробнее здесь: https://stackoverflow.com/questions/787 ... g-the-arra