Лучшие 40 вопросов структуры данных и алгоритмы для интервью Java

Лучшие 40 вопросов структуры данных и алгоритмы для интервью Java

Coding


Стек:

Вопрос 1: Реализация стека с использованием массива.

Вам нужно реализовать стек с использованием массива. Вам нужно написать методы push и pop для демонстрации поведения стека (Last In First Out). 

Решение : Java-программа для реализации стека с использованием массива.

Вопрос 2: Реализация стека с использованием связанного списка:

Вам необходимо реализовать стек с помощью связанного списка. Вам нужно написать методы push и pop для демонстрации поведения стека (Last In First Out). 

Решение  :  Java-программа для реализации стека с использованием Linked List

Вопрос 3: Реализация стека с использованием двух очередей.

Вам нужно использовать две очереди для реализации поведения стека. Вам нужно написать методы push и pop для демонстрации поведения стека (Last In First Out). 

Решение : Java-программа для реализации стека с использованием двух очередей

Вопрос 4: Сортировка стека, используя другой стек

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

Решение : Сортируйте стек, используя другой стек.

Связанный список:

Вопрос 5: Реализация односвязного списка в Java.

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


Вопрос 6: Как перевернуть связанный список в Java.

Вам нужно написать итеративное и рекурсивное решение для обратного связанного списка. 

Решение : Java-программа для обратного связанного списка в Java.

Вопрос 7: Как найти средний элемент связанного списка.

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


Вопрос 8: Как найти n-й элемент в конце связанного списка.

Вам нужно написать программу Java, чтобы найти n-й элемент связанного списка наиболее оптимальным способом. 

В вопросе 6 Узел 7 является третьим из последнего связанного списка. 

Решение : Как найти n-й элемент в конце связанного списка.

Вопрос 9: Как обнаружить петлю в связанном списке. Если в связанном списке есть цикл, найдите начальный узел для цикла.

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

Решение : Как обнаружить петлю в связанном списке . 

Как найти начальный узел цикла в связанном списке.

Вопрос 10: Как проверить, является ли связанный список палиндромом или нет?

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

Решение : Java-программа для проверки, является ли связанный список палиндромом.

Вопрос 11: Как перевернуть связанный список попарно?

Вам нужно написать Java-программу для обратного связывания списка в парах. Решение: Java-программа для обратного связывания списка в паре.


Двоичное дерево:

Вопрос 12: Как вы можете пройти через двоичное дерево?

Есть три способа прохождения бинарного дерева.

Вопрос 13: Напишите алгоритм для выполнения обхода порядка двоичного дерева?

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


Решение : Уровень порядка обхода бинарного дерева.

Вопрос 14: Написать алгоритм для выполнения спирального обхода порядка двоичного дерева?

Вам нужно написать Java-программу для обхода спирального уровня в двоичном дереве


Решение :  Sprial порядок или зигзагообразный обход бинарного дерева.

Вопрос 15: Как вы можете распечатать листовые узлы двоичного дерева?

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


Конечные узлы для вышеупомянутого двоичного дерева будут 5, 30, 55, 70 

Решение : Выведите конечные узлы двоичного дерева.

Вопрос 16: Как подсчитать листовые узлы бинарного дерева.

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

Число узлов листа для двоичного дерева, используемого в вопросе 15, равно  5 . 

Решение : Подсчитайте листовые узлы двоичного дерева.

Вопрос 17. Как напечатать все пути от корня до листа в двоичном дереве.

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


Решение : Выведите все пути от корня до листа в двоичном дереве.

Вопрос 18: Как найти уровень узла в двоичном дереве

Для данного узла вам нужно найти уровень узла. Например: Уровень узла будет 3 для узла 70, используемого в Вопросе 14. 

Решение : Найти уровень узла в двоичном дереве.

Вопрос 19: Как найти максимальный элемент в двоичном дереве.

Вам нужно написать Java-программу, чтобы найти максимальный элемент в двоичном дереве. 

Решение : Найти максимальный элемент в двоичном дереве.

Вопрос 20: Как найти наименьшего общего предка (LCA) в бинарном дереве.

Вам нужно написать программу для поиска LCA в двоичном дереве.


Решение : Программа для поиска LCA в двоичном дереве.

Вопрос 21: Как сделать обход границы бинарного дерева.

Напишите Java-программу для обхода границ двоичного дерева, как показано на рисунке ниже.


Решение: обход границы бинарного дерева.

Вопрос 22: Как вывести вертикальную сумму двоичного дерева?

Вам нужно найти сумму узлов, которая лежит в одном столбце.


Решение: Как вывести вертикальную сумму двоичного дерева .

Дерево бинарного поиска:

Вопрос 23: Что такое дерево двоичного поиска?

Двоичное дерево поиска - это особый тип  двоичного дерева,  которое имеет следующие свойства.

  • Узлы, которые меньше, чем root, будут в левом поддереве.
  • Узлы, которые больше, чем root, будут правильным поддеревом.
  • Не должно иметь дублирующих узлов
  • И левое, и правое поддерево также должно быть бинарным деревом поиска.

Вопрос 24: Можете ли вы написать алгоритм для вставки узла в бинарное дерево поиска.

Решение : Вставить узел в бинарное дерево поиска

Вопрос 25: Можете ли вы написать алгоритм удаления узла в бинарном дереве поиска.

Решение : Удалить узел в бинарном дереве поиска

Вопрос 26: Как вы можете найти минимальные и максимальные элементы в бинарном дереве поиска?

Решение : крайний левый и правый узлы бинарного дерева поиска являются минимальным и максимальным узлами соответственно

Минимальные и максимальные элементы в бинарном дереве поиска .

Вопрос 27: Как найти наименьшего общего предка (LCA) в бинарном дереве поиска.

Вам нужно написать программу для поиска LCA в бинарном дереве поиска.


Решение :  Программа для поиска LCA в бинарном дереве поиска.

Сортировка:

Вопрос 28: Можете ли вы написать алгоритм сортировки слиянием, а также знаете ли вы сложность сортировки слиянием?

Решение : внедрить сортировку Merge в Java

Вопрос 29: что такое бинарный поиск? Можете ли вы написать алгоритм для поиска элемента в отсортированном массиве с помощью бинарного поиска?

Решение : алгоритм двоичного поиска в Java

Массив:

Вопрос 30: Найти пропущенное число в массиве.

Вам дан целочисленный массив, содержащий от 1 до n, но одно из чисел от 1 до n в массиве отсутствует. Вам необходимо предоставить оптимальное решение, чтобы найти пропущенный номер. Число не может быть повторено в Arry. 

Например:

int [] arr1 = {7,5,6,1,4,2}; 
Отсутствующий номер: 3 
int [] arr2 = {5,3,1,2}; 
Недостающее число: 4

Решение : Найти недостающее число в массиве.

Вопрос 31: Поиск элемента в повернутом и отсортированном массиве.

Вам дан отсортированный и повернутый массив, как показано ниже:

int arr [] = {16,19,21,25,3,5,8,10};

Если вы заметили, что массив отсортирован и повернут. Вам нужно искать элемент в указанном массиве в o (log n) сложности времени. 

Решение : поиск элемента в повернутом и отсортированном массиве

Вопрос 32: Найти второе по величине число в массиве

Учитывая несортированный массив, вам нужно найти второй по величине элемент в массиве за o (n) временной сложности. 

Например:

int [] arr1 = {7,5,6,1,4,2}; 
Второй по величине элемент в массиве: 6

Решение: Java-программа для поиска второго по величине числа в массиве .

Вопрос 33: Найти число, встречающееся нечетное количество раз в массиве

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

Например:

int array [] = new int [] {20, 40, 50, 40, 50, 20, 30, 30, 50, 20, 40, 40, 20}; 
Число, которое встречается нечетное количество раз: 50

Решение:  Java-программа для поиска числа, встречающегося нечетным числом раз в массиве .

Вопрос 34: Найдите минимальное количество платформ, необходимых для железнодорожной станции

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

Например:

прибытие [] = {1:00, 1:40, 1:50, 2:00, 2:15, 4:00} 
отправление [] = {1:10, 3:00, 2:20, 2:30, 3:15, 6:00} 
Количество платформ, необходимых в приведенном выше сценарии = 4

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

Решение:  Найти минимальное количество платформ, необходимых для железнодорожной станции .

Вопрос 35: Найдите пару, чья сумма ближе всего к нулю в массиве

Учитывая массив целых + ve и -ve, нам нужно найти пару, сумма которой близка к нулю в массиве.

Например:

массив [] = {1,3, -5,7,8,20, -40,6}; 
Пара, сумма которой ближе всего к нулю: -5 и 6

Решение:  Найдите пару, чья сумма ближе всего к нулю в массиве в Java .

Вопрос 36: Учитывая отсортированный массив и число x, найдите в массиве пару, сумма которой ближе всего к x

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

Например:

массив [] = {- 40, -5,1,3,6,7,8,20}; 
Пара, чья сумма ближе всего к 5: 1 и 3

Решение:  Найдите пару, чья сумма ближе всего к X в массиве в Java .

Вопрос 37: Найти все пары элементов из массива, сумма которого равна заданному числу

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

Например:

массив [] = {-40, -5, 1, 3, 6, 7, 8, 20}; 
Пара элементов, сумма которых равна 15: 7, 8 и -5, 20

Решение:  Найти все пары элементов из массива, сумма которого равна заданному числу .

График:

Вопрос 38: Напишите алгоритм для поиска в глубине в графе.

Решение : поиск в глубине в java

Вопрос 39: Напишите алгоритм для поиска в ширину по графику.

Решение:  поиск в ширину в java

Разнообразный

Вопрос 40: Что такое алгоритм и как рассчитать сложность алгоритмов.

Решение: Как рассчитать сложность алгоритма.

Источник


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


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


Report Page