TGViewer
Артём Рыбин | Мэйби Артём Рыбин | Мэйби @maybe_digital · 250 subscribers
Post #13 161
Метод нахождение цикла

Основные применения метода нахождение цикла:
1. Обнаружение циклов в графах или связанных структурах.
2. Проверка корректности данных.

Алгоритм:
1.    Инициализируем два указателя. Медленный указатель (slow) и быстрый указатель (fast).
2.    Начинаем обход списка. Медленный указатель перемещается на один шаг за раз, а быстрый указатель - на два шага за раз.
3.    Выставляем условие. Если цикл существует в списке, рано или поздно быстрый указатель догонит медленный указатель внутри цикла.
4.    Получаем результат. Как только быстрый и медленный указатели встретятся внутри цикла, мы знаем, что цикл существует.


Пример задачи: Проверить список на наличие цикла.

type ListNode struct {
    Value int
    Next  *ListNode
}
 
func hasCycle(head *ListNode) bool {
    if head == nil {
        return false
    }
 
    slow := head
    fast := head.Next
 
    for fast != nil && fast.Next != nil {
        if slow == fast {
            return true // Цикл обнаружен
        }
        slow = slow.Next         // Шаг fast
        fast = fast.Next.Next   // Шаг slow
    }
 
    return false // Цикл не найден
}


#ПовторяемАлгосы
  • ❤ 1
  • 🔥 1
More from @maybe_digital
  1. Sep 22, 2026Ну что, возвращаемся в медиа пространство Новый выпуск из серии подкастов «От кода к бизне…
  2. Sep 12, 2026А кто это у нас тут в отпуске смог пробиться на AI Cases Conf? Когда проект интересный - о…
  3. Sep 3, 2026Поговорили в ТГ и погнали на студию В сотый раз говорю, что безумно благодарен Олегу, за т…
  4. Aug 22, 2026Зашел к Олегу с идей сделать подкаст. В целом, аудиоверсия у нас есть
  5. Aug 21, 2026Не еду на конфу Сегодня общались с программным коммитетом и пришли к тому, что идея классн…
  6. Aug 20, 2026Сегодня был небольшой созвон утром, после которого получило письмо на почту Уважаемый Арте…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →