2015-11-26 3 views
0

Удивительно, что раньше кто-то работал над подобной проблемой? И мой вопрос: почему {8, 6} - пики? Я думаю, что 8 - пик, но поскольку 6 меньше 8, это не должно быть пиком? Благодарю.альтернативный алгоритм пучка и долины

В массиве целых чисел «пик» представляет собой элемент, который больше или равен смежным целым, а «долина» - нам, который меньше или равен смежным целым числам. Например, в массиве {5,8,6,2,3,4,6} {8,6} находятся пики, а {5,2} - долины. Учитывая массив целых чисел, сортируйте массив в чередующуюся последовательность пиков и долин.

Пример,

Входной сигнал: {5,3,1,2,3} Выход: {5,1,3,2,3}

спасибо заранее, Лин

+1

Обычно сортируйте массив, затем заменяйте каждый элемент с четными номерами следующим. –

+1

подобные? [Объяснить алгоритм пика и флага] (http://stackoverflow.com/questions/19457870/explain-the-peak-and-flag-algorithm?rq=1) –

+0

@nm, спасибо, но почему на выходе образца , {5,1,3,2,3} имеет альтернативный пик и долину? Я думаю, 5 всегда пик в массиве ввода и outptu - ничего не изменилось? Благодарю. –

ответ

2

Относится к 6 - это второй 6 в конце последовательности. Это хорошо подходит для описания (если не очень ясно) и подкреплено 5, являющимся долиной.

Переменная последовательность пиков и долин представляет собой последовательность, так что либо все элементы в нечетных позициях являются пиками, а в четных положениях являются долины или наоборот. Последовательность вывода в примере демонстрирует элементы входной последовательности, отсортированные таким образом.

+1

Спасибо Дэвиду, но почему в выходе образца {5,1,3,2,3} есть альтернативный пик и долина? Я думаю, 5 всегда пик в массиве ввода и outptu - ничего не изменилось? Благодарю. –

+1

Похоже, вы поняли это. :) Отредактированный ответ, чтобы быть немного более полным, тем не менее. –