Рубрики
Без рубрики

Более 20 Вопросов для собеседования со связанными списками для программистов Java, C++ и Python

Коллекция часто задаваемых вопросов из связанного списка собеседований на собеседованиях по программированию для начинающих и опытных программистов Java, C++ и Python.. С пометкой java, программирование, карьера.

Раскрытие информации: Этот пост содержит партнерские ссылки; Я могу получить компенсацию, если вы приобретете товары или услуги по различным ссылкам, предоставленным в этой статье.

Привет всем, я делился множеством вопросов для собеседований по программированию для программистов, которые активно ищут работу в качестве разработчиков Java, Python или C ++, особенно начинающих, младших разработчиков и компьютерных инженеров, которые только что закончили обучение и не имеют реального опыта работы.

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

Структуры данных являются одной из наиболее важных частей любого собеседования по программированию и часто являются причиной выбора или отклонения кандидата, поэтому рассмотрение и практика этих проблем, основанных на структуре данных , даст вам преимущество перед вашим конкурентом.

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

Решение этих проблем с кодированием не только поможет вам лучше изучить языки программирования и ваши инструменты, но и отточит ваши навыки решения проблем, что очень важно для любого профессионального разработчика.

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

Что такое связанный список?

связанный список – это еще одна распространенная структура данных, которая дополняет структуру данных массива. Подобно массиву, он также представляет собой линейную структуру данных и хранит элементы линейным способом.

Однако, в отличие от array , он не хранит их в непрерывных местоположениях; вместо этого они разбросаны повсюду в памяти, которая соединена друг с другом с помощью узлов.

Связанный список – это не что иное, как список узлов , где каждый узел содержит сохраненное значение и адрес следующего узла.

Благодаря такой структуре легко добавлять и удалять элементы в связанном списке , так как вам просто нужно изменить ссылку вместо создания массива , но поиск сложен и часто требует O (n) времени, чтобы найти элемент в односвязном списке.

Вот некоторые важные свойства структуры данных связанного списка:

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

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

  3. Добавлять или удалять элементы в связанном списке проще, так как вам просто нужно удалить или перерисовать ссылку, в отличие от массива, где вам нужно перемещать элементы. Добавление элемента в head занимает O(1) времени.

  4. Поиск в связанном списке затруднен, и поиск по списку занимает O (n) времени, потому что вам нужно пройти по списку, чтобы добраться до целевого узла.

В этой статье содержится дополнительная информация о различии между структурами данных массива и связанного списка.

Он также имеет такие разновидности, как односвязный список, который позволяет перемещаться в одном направлении (вперед или назад); двусвязный список , который позволяет перемещаться в обоих направлениях (вперед и назад); и, наконец, круговой связанный список , который образует круг.

Как решить проблемы с кодированием связанных списков?

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

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

Они также решаются с использованием методов “разделяй и властвуй”, которые разбивают проблему на подзадачи до тех пор, пока вы не сможете их решить.

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

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

Кстати, нет смысла решать эти проблемы с кодированием на основе связанных списков, если у вас нет базовых знаний о структуре данных или вы не обновляли их в последнее время. В таком случае я предлагаю вам сначала пройти хорошие курсы по структуре данных и алгоритмам или книгу , чтобы пересмотреть концепцию.

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

  1. Структуры данных и алгоритмы: Глубокое погружение с использованием Java для разработчиков Java
  2. Алгоритмы и структуры данных на Python для тех, кто любит Python
  3. Мастер-класс по алгоритмам и структурам данных JavaScript Кольт Стил для JavaScript программисты
  4. Освоение структур данных и алгоритмов с использованием C и C++ для тех, кто хорошо разбирается в C/C++
  5. Структуры данных в Java: Обновление интервью для обновления важных концепций структуры данных и алгоритмов в Java.

И, если вы предпочитаете книги, нет ничего лучше, чем Введение в алгоритмы Томаса Х. Кормена. Это одна из наиболее полных книг по структуре данных и алгоритмам, полезная для начинающих программистов и разработчиков программного обеспечения.

Более 20 Часто задаваемых проблем со связанными списками из интервью по кодированию

Не тратя больше времени впустую, вот некоторые из наиболее распространенных и популярных вопросов для интервью со связанными списками из интервью по кодированию. Я ссылался на решение везде, где это было возможно, но я предлагаю вам сначала попытаться решить проблему самостоятельно, это принесет вам пользу, потому что вы будете думать и учиться. Как только вы решите проблему или застряли после попытки, вы можете посмотреть на решение и извлечь из него уроки.

  1. Как вы находите средний элемент односвязного списка за один проход? ( решение )

  2. Как вы обращаете вспять односвязный список без рекурсии? ( решение )

  3. Как удаляются повторяющиеся узлы в несортированном связанном списке? ( решение )

  4. Как вы определяете длину односвязного списка? ( решение )

  5. Как вы проверяете, содержит ли данный связанный список цикл? Как вы находите начальный узел цикла? ( решение )

  6. Как перевернуть связанный список? ( решение )

  7. Как вы находите третий узел с конца в одном связанном списке? ( решение )

  8. Как вы находите сумму двух связанных списков с помощью стека? ( решение )

  9. Как вы меняете связанный список на месте? (решение) ( http://www.java67.com/2017/06/5-difference-between-array-and-linked.html )**) * *

  10. Как удалить N-й узел из конца связанного списка? ( решение )

  11. Как объединить два отсортированных связанных списка? (решение)

  12. Как добавить элемент в середину связанного списка? Как добавить элемент в середину связанного списка?

  13. Как вы сортируете связанный список в Java? ( решение )

  14. В чем разница между массивом и связанным списком? ( [ ответ ]

  15. Как преобразовать отсортированный список в двоичное дерево поиска? ( решение )

  16. Учитывая связанный список и значение x , разделите его таким образом , чтобы все узлы, меньшие x , предшествовали узлам , большим или равным x . ( решение )

  17. Как удалить все элементы из связанного списка целых чисел, которые соответствуют заданному значению? (решение)

  18. Как найти узел, с которого начинается пересечение двух односвязных списков. ( решение )

  19. Как проверить, является ли данный связанный список палиндромом? (решение)

  20. Как удалить дубликаты из отсортированного связанного списка? ( решение )

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

Если у вас возникли проблемы с решением этих вопросов по кодированию связанных списков, я предлагаю вам обновить свои навыки в области структуры данных и алгоритмов, пройдя курс Структуры данных и алгоритмы: Глубокое погружение с использованием Java .

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

Полезные ресурсы для кодирования интервью

Если вам нужны какие-то полезные ресурсы, чтобы успешно пройти собеседование по программированию и кодированию, вот некоторые онлайн-курсы и книги, которые вам следует просмотреть:

  1. Структуры данных и алгоритмы: Глубокое погружение с использованием Java
  2. Прохождение собеседования по кодированию: Шаблоны для вопросов по кодированию
  3. Взлом книги интервью по кодированию
  4. Освойте Собеседование по кодированию: Структуры данных + Алгоритмы
  5. Подготовка К Собеседованию С Джоном Сонмезом

В этой статье я поделился большим количеством ресурсов для разработчиков Java , Python и C++ для изучения структуры данных и алгоритмов.

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

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

Теперь вы на шаг ближе к своему собеседованию по программированию

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

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

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

Если вы ищете Java , Python или Программирование на C++ и работа по разработке программного обеспечения, вы можете начать свою подготовку с этого списка вопросов по кодированию.

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

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

Другие Статьи О Структуре Данных, Которые Вы Может понравиться 10 Книг по алгоритмам Каждый Программист Должен Прочитать Топ-5 книг по структуре данных и алгоритмам для разработчиков Java 20+ Проблем с кодированием строк из Интервью 100+ Проблем со структурой данных и алгоритмами из интервью 30+ Проблем на основе массивов из интервью по кодированию От 0 до 1: Структуры данных и алгоритмы в Java Анализ структуры данных и алгоритмов — Собеседование при приеме на работу 10 книг для подготовки к техническому программированию/Собеседования по кодированию Поиск шаблонов динамического программирования для собеседований по кодированию Прослушивание интервью по проектированию системы

Заключительные замечания

Спасибо, Вы добрались до конца статьи… Удачи вам в вашем собеседовании по программированию! Это, конечно, будет нелегко, но, попрактиковавшись в этих вопросах, вы станете на шаг ближе к успеху и работе, о которой всегда мечтали.

Если вам понравилась эта статья, пожалуйста, поделитесь ею со своими друзьями и коллегами и не забудьте подписаться на javin paul в Twitter!

P.S. — Если вам нужны какие-то БЕСПЛАТНЫЕ ресурсы, вы можете ознакомиться с этим списком бесплатных курсов по структуре данных и алгоритмам , чтобы начать свою подготовку.

Оригинал: “https://dev.to/javinpaul/review-these-linked-list-interview-questions-before-your-java-python-or-c-programming-interviews-35o4”