День 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 (включительно ), докажите, что должен существовать хотя бы один повторяющийся номер. Предположим, что есть только один повторяющийся номер, найдите повторяющийся.
- Вы не должны изменять массив (предположим, что массив доступен только для чтения).
- Вы должны использовать только константу, O (1) дополнительный пробел.
- Сложность выполнения должна быть меньше O (n ²).
- В массиве всего одно повторяющееся число, но оно может повторяться более одного раза.
Пример🕶
Input: [1,3,4,2,2]
Output: 2
Input: [3,1,3,4,2]
Output: 3
Код👇
Алгоритм👨🎓
- Самая важная подсказка состоит в том, что числа варьируются от 1 до n. Затем мы можем использовать подход с двумя указателями для решения этой проблемы.
- индексы в массиве и значение в массивах будут содержать одинаковые числа.
- Подход с двумя указателями состоит из медленного указателя, который перемещается на один шаг. быстрый указатель, который перемещает два шага.
- Поскольку все значения в массиве могут быть приняты как индексы и не будет исключения за пределами границ, мы считаем значения в массиве индексами.
- Оба указателя начинаются с первого элемента.
- Медленный указатель перемещается к индексу, представленному текущим значением.
- Быстрый указатель перемещается, перемещаясь дважды одинаково.
- Вырвитесь из петли, когда они встретятся друг с другом.
- Теперь инициализируйте медленный указатель на начало массива. Пусть быстрый указатель сам находится в той же позиции.
- Перемещайте медленно и быстро указатели по одному. Они встретятся в точке, которая является повторяющимся числом.
Дальнейшее чтение
4 невероятно полезных совета по связному списку для собеседования
25 лучших вопросов для собеседований по Amazon SDE
Как вы думаете, вы действительно знаете о числах Фибоначчи?
9 лучших задач со строками, решаемых с помощью C Программирование
Не просто решить 50 задач, связанных с рангом хакера
Конец строки
Вы подошли к концу этой статьи. Спасибо, что прочитали это. Удачи вам с собеседованием по программированию!
Если вы столкнетесь с любым из этих вопросов в своем интервью. Пожалуйста, поделитесь им в разделе комментариев ниже. Я буду счастлив их прочитать.
Не забывайте нажимать кнопку подписки✅, чтобы получать обновления, когда мы публикуем новые задачи по кодированию. Расскажите, как вы решили эту проблему. 🔥 Мы были бы рады их прочитать. ❤ Мы можем рассказать о вашем методе в одном из сообщений блога.
Хотите стать выдающимся в программировании на Java?
Подборка решенных 100 проблем программирования на Java (интервью). (Hacker Rank) 🐱💻. Это полностью бесплатно 🆓, если у вас есть подписка на Amazon kindle.