TGViewer
JavaRocks JavaRocks @javarocks · 2.12K subscribers
Post #455 395
🛠 Алгоритм Действий

Весь секрет в сложении!

1. Считаем, сколько должно быть:
Используем формулу для суммы чисел от 1 до N. Это наша Полная Сумма.
Полная Сумма = N*(N + 1)/2


2. Считаем, сколько есть:
Проходим по нашему массиву один раз и складываем все числа. Это наша Фактическая Сумма.

3. Находим разницу:
Вычитаем то, что есть, из того, что должно быть.
Пропущенное число = Полная Сумма - Фактическая Сумма


💻 Реализация на Java
public class Main {
public static void main(String[] args) {
// Задаем N - максимальное число, которое должно быть в последовательности.
int n = 10;

// Массив, в котором отсутствует одно число (например, 3)
// int[] array = new int[] {1, 2, 4, 5, 6, 7, 8, 9, 10}; // Если 3 пропущено
int[] array = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // Тестовый массив без пропусков

// 1. Вычисляем Полную Сумму (Full Sum)
// Используем формулу суммы арифметической прогрессии: N * (N + 1) / 2
// Это эталонная сумма всех чисел от 1 до N.
int sumAll = (n * (n + 1)) / 2;

// 2. Вычисляем Фактическую Сумму (Actual Sum) за один проход
int sum = 0;
// Это единственный проход по массиву, соответствующий ограничению O(N)
for (int i = 0; i < array.length; i++) {
sum += array[i];
}

// 3. Сравниваем суммы и выводим результат
if (sumAll == sum) {
System.out.println("Число не пропущено");
} else {
// Разница между полной и фактической суммой - это и есть пропущенное число.
System.out.println("Пропущено число: " + (sumAll - sum));
}
}
}

Это решение — идеальный ответ на собеседовании.
😉

Оно демонстрирует не только умение писать код, но и знание базовой математики, позволяющее создать алгоритм с оптимальной временной сложностью (O(N)) и пространственной сложностью (O(1))!

Расскажите в комментариях, что получилось у вас!

👉 Java Rocks | #задача
  • ❤ 2
More from @javarocks
  1. Sep 15, 2026🔴 Тестовый собес с Java-разработчиком уже завтра! [+ разбор 50 сложных вопросов в подарок…
  2. Sep 14, 2026⚙️ Вакансии по Java за неделю: 📥 Java Developer Hireway Remote · ₽240 000 – 250 000 📥 Ja…
  3. Sep 7, 2026✨ Вакансии по Java за неделю: 📥 Senior Java разработчик Продуктовая лаборатория Mish Seni…
  4. Sep 3, 2026🖥 Геттеры и сеттеры в Java Геттеры и сеттеры - это специальные методы класса для получени…
  5. Sep 3, 2026ХОЧЕШЬ ПОВЫСИТЬ ГРЕЙД В 2026 ГОДУ? 🚀 Чтобы стать Senior Java разработчиком сегодня, нужно…
  6. Aug 31, 2026⭐️ Вакансии по Java за неделю: 📥 Java Developer (Backend) VIGO Senior · Hybrid · Санкт-Пе…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →