Codewars — интересный веб-сайт для улучшения ваших навыков программирования. Я некоторое время экспериментировал с сайтом, пытаясь стать лучше в Python. Я наткнулся на проблему Пика Пика в кодовых войнах, которая показалась мне очень интересной. В этом посте я покажу вам, ребята, решение задачи Pick Peak на Codewars. Задача Выбрать пик была веселой и интересной. Вот в чем проблема.

Описание:

В этом ката вы напишете функцию, которая возвращает позиции и значения «пиков» (или локальных максимумов) числового массива.

Например, массив arr = [0, 1, 2, 5, 1, 0] имеет вершину в позиции 3 со значением 5 (arr[3] равно 5).

Вывод будет возвращен в виде структуры (PosPeaks) с двумя свойствами: Pos и ​​Peaks. Оба эти свойства должны быть массивами. Если в заданном массиве нет пика, то вывод должен быть {Pos: [], Peaks: []}.

Пример: PickPeaks([3, 2, 3, 6, 4, 1, 2, 3, 2, 1, 2, 3]) возвращает {Pos: [3, 7], Peaks: [6, 3]}

Все входные массивы будут действительными числовыми массивами (хотя они могут быть пустыми), поэтому вам не нужно будет проверять ввод.

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

Также остерегайтесь плато! [1, 2, 2, 2, 1] имеет пик, а [1, 2, 2, 2, 3] — нет. В случае плато-пика, пожалуйста, верните только положение и значение начала плато. Например: PickPeaks([1, 2, 2, 2, 1]) возвращает {Pos: [1], Peaks: [2]}

Развлекайся!

Вот мое решение на Python. Хотя читается немного как C!

Для получения дополнительных решений следуйте тегу codewars, puzzles или solutions.

Первоначально опубликовано в Dinesh A Joshi.