Алгоритмы проблемы решения серии (23 части серии)
Этот пост является частью Алгоритмы проблемы решения ряд.
Описание проблемы
Это Перемешать массив проблема. Описание выглядит так:
Учитывая массив Nums
состоящий из 2n
Элементы в форме [x1, x2, ..., xn, y1, y2, ..., yn]
Отказ
Верните массив в форме [x1, y1, x2, y2, ..., xn, yn]
Отказ
Примеры
Input: nums = [2,5,1,3,4,7], n = 3 Output: [2,3,5,4,1,7] Input: nums = [1,2,3,4,4,3,2,1], n = 4 Output: [1,4,2,3,3,2,4,1] Input: nums = [1,1,2,2], n = 2 Output: [1,2,1,2]
Решение
Идея моего решения состояла в том, чтобы получить первую и последнюю половину Nums
список. Затем повторяйте через списки и добавьте один за другим.
def shuffle(nums, n): first_half = nums[:n] last_half = nums[n:] final_list = [] for index in range(len(first_half)): final_list.append(first_half[index]) final_list.append(last_half[index]) return final_list
Мы также могли бы также повторить списки одновременно, используя Zip
функция. И добавить элементы в один звонок вместо двух линий:
def shuffle(nums, n): first_half = nums[:n] last_half = nums[n:] final_list = [] for first, last in zip(first_half, last_half): final_list.extend((first, last)) return final_list
Ресурсы
- Обучение Python: Из грязи в князи
- Алгоритмы решения проблемы решения серии
- Стекстическая структура данных
- Структура данных очереди
- Связанный список
- Структура данных деревьев
Алгоритмы проблемы решения серии (23 части серии)
Оригинал: “https://dev.to/teekay/algorithms-problem-solving-shuffle-the-array-39i8”