Pull to refresh
27
2
Suleiman Dibirov @idsulik

Senior Software Engineer

Send message

ну да, если задача заключается в просто нахождении середины, то это неоптимальный вариант хранения данных

тоже не припоминаю) ни в том, ни в другмо виде

На самом деле есть место и тому и другому и третьему варианту) тут зависит от конкретной задачи.
Но я не знаю кейса, где понадобится такая оптимизация, что нужно менять объякты и добавлять туда указатели, вместо использования linked list

а, решал эту задачу и планирую тоже сделать видео по нему)

ну значение ноды будет ССЫЛКА на нужный объект, поэтому не вижу в этом проблем) ну или плохо понял идею

что-то звучит сложно и извращено)

не понял про кольцевой список

ну это как-то не очень, лучше создать LinkedList, чтобы код был чище)

linked list делается не отдельно, а поверх уже существующей структуры данных

не понял этот момент, что имеется в виду?

согласен, в случае с быстрым и медленным указателем, проходим каждый элемент 1.5 раз, но в рамках одного цикла

Лучше не опишешь, добавлю это в комментарии к видео и оставлю ссылку на источник)

Согласен, что третий вариант довольно хитрий и да, второй вариант проще в понимании

Самый оптимальный вариант третий) а две другие лишь подводят к третьему

на тех же собеседованиях спрашивают когда linked list лучше, чем array list - обычно ничего вменяемого придумать не удаётся

надо было мне это объяснить на видео.
проблема массивов в том, что когда место заканчивается, тебе надо создать новый массив большего размера, скопировать туда все элементы старого массива и добавить новый элемент уже в новый массив, когда как linked list может расширяться сколько угодно и по одному элементу.

а вот реально применять связный список мне пока не приходилось)

А что если элементов действительно много? миллионы элементов, каждый элемент содержит большое количество данных?)
лучше за один проход решить, если такая возможность есть) и быстро и памяти потребляет мало

Это тоже хороший и полезный способ, но все зависит от самой задачи, если достаточно односвязного списка без доп. данных, то нет смысла добавлять доп. данные, а если для задачи полезно держать какие-то данные в узлах, то делаем так)

В первую очередь подбираю задачи, так чтобы объяснить какую-то тему, которая будет полезна на интервью, на примере этой задачи или саму задачу, которая часто встречается на интервью.
У меня на канале идут подряд задачи связанные с какой-то темой(two pointers, sliding window), сейчас перешел на тему fast and slow pointer и на примере этой задачи объяснил, что это такое + объяснил что такое связный список и какие они бывают(на видео).

Мне вот давали Reverse Linked List(фаанг в РФ) и десятки других задач(easy/medium/hard).

К сожалению, есть такое, весь спектр ощутил после первой статьи https://habr.com/ru/articles/786184/
Но в то же время бывают и полезные комментарии, поэтому натягиваем броню и вперед)

Да, можно и желательно решать так) на видео я как раз предложил зрителям попробовать решить более оптимальным способ

Это medium задача https://leetcode.com/problems/longest-substring-without-repeating-characters , которую дают в десятки разных компаний, включая FAANG)

Information

Rating
1,337-th
Registered
Activity