Sobes.tech
Senior
45

Úkol 2. Dvouřadkové spojení dvou seřazených polí Dána jsou dvě seřazená pole vzestupně, nums1 a nums2. Je třeba je spojit do jednoho seřazeného pole vzestupně. nums1 = [1, 3, 5] nums2 = [2, 4, 6] merge_sorted(nums1, nums2) -> [1, 2, 3, 4, 5, 6]

Společnosti byly požádány
СБЕРСБЕР

Odpověď od AI

sobes.tech AI

Для слияния двух отсортированных массивов можно использовать два указателя, которые будут проходить по массивам и сравнивать текущие элементы, добавляя меньший в результирующий массив. Это классический алгоритм слияния, который работает за время O(n + m), где n и m — размеры массивов.

Пример на Python:

def merge_sorted(nums1, nums2):
    i, j = 0, 0
    merged = []
    while i < len(nums1) and j < len(nums2):
        if nums1[i] < nums2[j]:
            merged.append(nums1[i])
            i += 1
        else:
            merged.append(nums2[j])
            j += 1
    # Добавляем оставшиеся элементы
    merged.extend(nums1[i:])
    merged.extend(nums2[j:])
    return merged

# Пример использования
nums1 = [1, 3, 5]
nums2 = [2, 4, 6]
print(merge_sorted(nums1, nums2))  # [1, 2, 3, 4, 5, 6]