Скрининг на middle-senior IOS Developer в ****

Доступно с премиум-подпиской

Оформите премиум-подписку, чтобы получить доступ к:

  • Фильтрации по компаниям
  • Названиям компаний в интервью
  • Видеозаписям собеседований в категории IOS Developer

Посмотреть видео в категории

(2025-01-30)

Девайсы алгоритмическая задача с тех скрининга На вход подаются 2 отсортированных по возрастанию массива типа Int. Необходимо написать функцию merge, которая возвращает результат слияния данных массивов в один отсортированный

например, merge([1, 3, 3], [0, 2, 5]) -> [0, 1, 2, 3, 3, 5]

Массивы допускаются быть:

— различной длины [1] [1, 2, 3] — пустые [] — с повторениями […, 2, 2, …]

func merge(_ a: [Int], _ b: [Int]) -> [Int] {
    var i = 0
    var j = 0
    var results = [Int]()

    results.reserveCapacity(a.count + b.count)

    while i < a.count && j < b.count {
        if a[i] < b[j] {
            results.append(a[i])
            i += 1
        } else {
            results.append(b[j])
            j += 1
        }
    }

    while i < a.count {
        results.append(a[i])
        i += 1
    }

    while j < b.count {
        results.append(b[j])
        j += 1
    }

    return results
}