Перетасуйте задачу с массивом @Leetcode. Я использую 2 указателя и обновляю массив каждый раз, но проблема не решена.JAVA

Программисты JAVA общаются здесь
Anonymous
Перетасуйте задачу с массивом @Leetcode. Я использую 2 указателя и обновляю массив каждый раз, но проблема не решена.

Сообщение Anonymous »

Код: Выделить всё

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;
}
Дана массив размером n * 2 вида [x1,x2,...,xn,y1,y2,...,yn].
Нам нужно вернуть массив в форме [x1,y1,x2,y2,...,xn,yn.
Я попробовал это решение, получилось O (logN) время. Это сработало в 50% тестовых случаев, но не в остальных. Думаю, здесь необходимо внести небольшие изменения. Я думаю, никто не использовал этот подход. Пожалуйста, если кто-то может помочь мне доработать алгоритм, помогите мне использовать этот подход.

Подробнее здесь: https://stackoverflow.com/questions/787 ... g-the-arra

Вернуться в «JAVA»