Тема 0

Большой O описывает эффективность алгоритма. Во время собеседования мы хотим написать алгоритм, который составляет O (n log n) или меньше.

Советы: для анализа большого O нужно посмотреть, сколько циклов и вложенных циклов имеет ваш алгоритм.

Постоянное время

Прямое получение хэш-карты, извлечение, удаление и т. Д.

Линейное время

1 петля уровня без внутреннего цикла.

Советы: одна петля ≈ O (n)

2 отдельные петли ≈ O (2n), поэтому O (n)

Время журнала

2-уровневый вложенный цикл с внутренним циклом, сокращающим / уменьшающим набор данных на каждой итерации, этот цикл равен (O (log n)), поэтому общий алгоритм равен = O (n log n)

Квадратичное время

2-уровневый вложенный цикл O (n * n), следовательно, O (n²)

Экспоненциальное время

Экспоненциальная временная сложность обозначает алгоритм, рост которого удваивается с

каждое добавление к входному набору данных

Советы. Для рекурсии проверьте, сколько раз вызывается рекурсивный метод. Если метод вызывается n раз с n выходами, ваш Big O равен O (n). Если каждая из ваших рекурсий разветвляется и вызывает себя 2 раза, ваш Big O равен O (2 n)

Последние мысли

Единственная цель этой статьи - поделиться во время интервью подходящим для нас решением, которое, как мы надеемся, поможет другим.

Спасибо, достаточно! Если вам понравился этот пост, не забудьте оставить 👏!

Вы можете подписаться на меня на Github, LinkedIn или Medium для следующей статьи в этой серии.

Для следующей статьи из этой серии:

Тема 1 - Скользящее окно