Эта проблема была задана мне в интервью Amazon -
Учитывая массив положительных целых чисел, вам нужно найти наименьшее положительное целое число, которое невозможно сформировать из суммы чисел из массива.
Пример:
Array:[4 13 2 3 1]
result= 11 { Since 11 was smallest positive number which can not be formed from the given array elements }
Что я сделал:
- отсортировано по массиву
- вычислил сумму префикса
- Измените массив сумм и проверьте, если следующий элемент меньше 1 больше суммы, т.е. A [j] <= (сумма + 1). Если не так, тогда ответ будет be sum + 1
Но это решение было nlog (n).
Интервьюер не был удовлетворен этим и попросил решение менее чем за время O (n log n).