День 13–100 дней до LinkedIn, Yahoo, Oracle

  • Закончились бесплатные истории? Вот моя Ссылка на друга.
  • 100 дней до LinkedIn, Yahoo, Oracle

Введение🛹

Привет, ребята, сегодня 13-й день 100 дней до LinkedIn Challenge.

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

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

Прежде чем мы перейдем к первой проблеме, если вам интересно, почему я выбрал LinkedIn, Yahoo и Oracle вместо FAANG, потому что я выполнил задачу, посвященную вопросам интервью Amazon и Facebook в этой серии:



Новый день, новые силы, новые мысли🚀

День 13 - Найдите повторяющееся число🏁

AIM🏹

Учитывая массив nums , содержащий n + 1 целых чисел, где каждое целое число находится в диапазоне от 1 до n (включительно ), докажите, что должен существовать хотя бы один повторяющийся номер. Предположим, что есть только один повторяющийся номер, найдите повторяющийся.

  1. Вы не должны изменять массив (предположим, что массив доступен только для чтения).
  2. Вы должны использовать только константу, O (1) дополнительный пробел.
  3. Сложность выполнения должна быть меньше O (n ²).
  4. В массиве всего одно повторяющееся число, но оно может повторяться более одного раза.

Пример🕶

Input: [1,3,4,2,2]
Output: 2
Input: [3,1,3,4,2]
Output: 3

Код👇

Алгоритм👨‍🎓

  1. Самая важная подсказка состоит в том, что числа варьируются от 1 до n. Затем мы можем использовать подход с двумя указателями для решения этой проблемы.
  2. индексы в массиве и значение в массивах будут содержать одинаковые числа.
  3. Подход с двумя указателями состоит из медленного указателя, который перемещается на один шаг. быстрый указатель, который перемещает два шага.
  4. Поскольку все значения в массиве могут быть приняты как индексы и не будет исключения за пределами границ, мы считаем значения в массиве индексами.
  5. Оба указателя начинаются с первого элемента.
  6. Медленный указатель перемещается к индексу, представленному текущим значением.
  7. Быстрый указатель перемещается, перемещаясь дважды одинаково.
  8. Вырвитесь из петли, когда они встретятся друг с другом.
  9. Теперь инициализируйте медленный указатель на начало массива. Пусть быстрый указатель сам находится в той же позиции.
  10. Перемещайте медленно и быстро указатели по одному. Они встретятся в точке, которая является повторяющимся числом.

Дальнейшее чтение

4 невероятно полезных совета по связному списку для собеседования
25 лучших вопросов для собеседований по Amazon SDE
Как вы думаете, вы действительно знаете о числах Фибоначчи?
9 лучших задач со строками, решаемых с помощью C Программирование
Не просто решить 50 задач, связанных с рангом хакера

Конец строки

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

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



Не забывайте нажимать кнопку подписки✅, чтобы получать обновления, когда мы публикуем новые задачи по кодированию. Расскажите, как вы решили эту проблему. 🔥 Мы были бы рады их прочитать. ❤ Мы можем рассказать о вашем методе в одном из сообщений блога.

Хотите стать выдающимся в программировании на Java?

Подборка решенных 100 проблем программирования на Java (интервью). (Hacker Rank) 🐱‍💻. Это полностью бесплатно 🆓, если у вас есть подписка на Amazon kindle.