Встречается на 2% собеседований по Java

Как обсуждали задачи

Обсуждаем задачи по следующему алгоритму:

  1. Уточняем требования – что именно нужно сделать, какие входные/выходные данные, ограничения.
  2. Разбираем edge cases – пустые данные, null, большие объемы, исключительные ситуации.
  3. Предлагаем подходы – обсуждаем возможные решения, их плюсы/минусы, сложность.
  4. Оптимизируем – ищем более эффективные способы, если нужно.
  5. Пишем код – если требуется, сразу реализуем решение.

Пример:

java
// Задача: найти дубликаты в массиве  
// 1. Уточняем: массив чисел, вернуть список дубликатов  
// 2. Edge cases: пустой массив, все уникальные, несколько дубликатов  
// 3. Решение: HashMap для подсчета  
public List<Integer> findDuplicates(int[] nums) {  
    Map<Integer, Integer> count = new HashMap<>();  
    List<Integer> duplicates = new ArrayList<>();  
    for (int num : nums) {  
        count.put(num, count.getOrDefault(num, 0) + 1);  
        if (count.get(num) == 2) duplicates.add(num);  
    }  
    return duplicates;  
}  

Обсуждаем код: проверяем логику, сложность O(n), можно ли улучшить.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы