Рубрики
Без рубрики

Алгоритмы Проблема Решение: Shuffle массив

Решение алгоритмов Проблемы с TK. Теги с алгоритмами, Python, Computerscience, интервью.

Алгоритмы проблемы решения серии (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

Ресурсы

Алгоритмы проблемы решения серии (23 части серии)

Оригинал: “https://dev.to/teekay/algorithms-problem-solving-shuffle-the-array-39i8”