2023-01-28 11:02:26
Найти вершины
Напишите функцию, которая возвращает позиции и значения «пиков» (или локальных максимумов) числового массива.
Например, массив arr = [0, 1, 2, 5, 1, 0] имеет пик в позиции 3 со значением 5 (поскольку arr[3] равно 5).
Вывод будет возвращен как объект с двумя свойствами: pos и peaks. Оба эти свойства должны быть массивами. Если в заданном массиве нет пика, то вывод должен быть {pos: [],peaks: []}.
Все входные массивы будут действительными целочисленными массивами (они могут быть пустыми), поэтому ввод проверять не нужно.
Первый и последний элементы массива не будут считаться пиками (в контексте математической функции мы не знаем, что находится после, а что до, и, следовательно, мы не знаем, пик это или нет).
Также, учтите плато - [1, 2, 2, 2, 1] имеет пик, а [1, 2, 2, 2, 3] и [1, 2, 2, 2, 2] — нет. В случае плато-пика, верните только положение и значение начала плато. Пример можно посмотреть ниже
Примеры:
pickPeaks([3, 2, 3, 6, 4, 1, 2, 3, 2, 1, 2, 3]) => {pos: [3, 7], peaks: [6, 3]}
pickPeaks([1, 2, 2, 2, 1]) => {pos: [1],peaks: [2]}
#5kyu #алгоритмы #массивы
2 views08:02