Вопросы по теме 'floyd-cycle-finding'
Алгоритм обнаружения циклов
Скажем, у меня есть функция f:
f(0) = 0
f(i) = (i - 1) % 4
f(0..12):
0 0 1 2 3 0 1 2 3 0 1 2 3
Я хочу найти начало цикла и длину цикла, которые равны 1 и 4 соответственно. Алгоритм черепахи и зайца работает с повторяющимися...
1893 просмотров
schedule
26.06.2022
Обнаружение цикла в LinkedList с использованием C#
В вопросе интервью: «Реализуйте алгоритм, который обнаруживает наличие цикла». Например, связанный список имеет цикл, например:
0--->1---->2---->3---->4---->5---->6
▲ |
|...
5116 просмотров
schedule
28.03.2023
Как найти начальный узел цикла в списке ссылок?
Согласно алгоритму поиска цикла Флойда, точка, где встречаются черепаха и заяц, объясняет круговой характер в списке ссылок.
Чтобы найти начальный узел в цикле, мы инициализируем указатель черепахи на заголовок списка и начинаем увеличивать...
9588 просмотров
schedule
14.03.2022
Алгоритм обнаружения петли Флойда с разным размером шага
В алгоритме обнаружения петель Флойда в связанном списке мы обычно увеличиваем медленный указатель на 1 единицу, а быстрый указатель — на 2 единицы. Какие другие значения мы можем использовать для увеличения медленного и быстрого указателя и как...
776 просмотров
schedule
19.06.2023
Когда алгоритм поиска цикла Флойда перестанет работать?
Я получаю вопрос из интервью об алгоритме поиска циклов Флойда :
Когда алгоритм поиска цикла Флойда перестанет работать?
Я имею в виду, есть ли правило для нахождения шага между быстрыми и медленными указателями?
1111 просмотров
schedule
04.06.2022
Алгоритм Флойда - Обнаружение цикла - не прекращается для примера
Может кто-нибудь объяснить алгоритм Флойда на этом примере. У меня это не завершается, и алгоритм реализован полностью?
Что-то не так с моим кодом? Код выглядит следующим образом:
Node* FindLoopBegin(Node *head){
Node *slowptr =...
271 просмотров
schedule
26.10.2022
Как реализовать алгоритм Флойда заяц и черепаху в Agda?
Я хочу перевести следующий код Haskell в Agda:
import Control.Arrow (first)
import Control.Monad (join)
safeTail :: [a] -> [a]
safeTail [] = []
safeTail (_:xs) = xs
floyd :: [a] -> [a] -> ([a], [a])
floyd xs [] = ([], xs)...
251 просмотров
schedule
14.09.2023
Почему точка встречи в цикле состоит из того же количества шагов, что и начало связанного списка?
Существует этот, по-видимому, стандартный подход, чтобы найти, есть ли в связанном списке цикл, а затем вернуть узел, который находится в начале цикла, который является алгоритмом floy с медленными/быстрыми указателями. Код и логика ясны, кроме 1...
61 просмотров
schedule
02.07.2022
Программа Happy Number с использованием массива, помогите мне, как рассчитать временную сложность?
Я написал программу Happy number, используя массив, помогите мне рассчитать временную сложность? Любое число будет называться счастливым числом, если после многократной замены его числом, равным сумме квадратов всех его цифр, мы получим число «1»....
57 просмотров
schedule
09.08.2022