2015-04-20 7 views
-2

Я хочу создать метод, который возвращает массив, который содержит точно такие же числа, что и заданный массив, но перегруппирован, так что каждые 3 сразу следует за 4.Как я могу создать метод, выполняющий эту работу?

Не перемещайте 3, но любое другое число может перемещаться , Массив содержит одинаковое число 3-х и 4-х, каждые 3 имеет ряд после того, что не является 3 или 4, а через 3 появляется в массиве до любого 4.

Пример:

problem({1, 3, 1, 4, 4, 3, 1}) → {1, 3, 4, 1, 1, 3, 4} 
problem({3, 2, 2, 4}) → {3, 4, 2, 2} 

Благодарю .

+0

У вас есть определенный язык программирования? Например, существуют различные функции сортировки массивов в 'php' – Martin

+1

- это домашняя задача? – wuppi

+0

В java, Да>< –

ответ

1

Set я = 0, у = 0. Тогда вы повторить следующее:

Найти первые 3 при индексе ≥ я, не сопровождаемого 4. Если ничего не найдено, вам удалось. Если 3 - последнее число в массиве или за ним следует 3, вы не выполнили. Теперь найдите первые 4 с индексом ≥ j, которому не предшествует 3. Если ни один не найден, вы терпите неудачу. В противном случае установите i = местоположение 3, j = местоположение 4, обменивайте объекты в положениях i + 1 и j, установите i = i + 2 и j = j + 1 и повторите.

Мне не нравится писать код, который зависит от обещаний о данных, которые я не проверяю сам, поэтому это будет работать независимо от того, что находится в массиве.

+0

Я попробую Перевести это как код Java. thx –

Смежные вопросы