У меня много проблем, пытаясь понять этот вопрос, и корень этой проблемы создает алгоритм сложности O(n)
. Вот вопрос, с которым я борюсь:
Array
A
длиныn
содержит целые числа из диапазона[0, .., n - 1]
. Однако он содержит толькоn - 1
различные числа. Поэтому одно из чисел отсутствует, а другой номер дублируется. Напишите метод Java, который принимаетA
как входной аргумент и возвращает недостающее число; метод должен работать вO(n)
.Например, когда
A = [0, 2, 1, 2, 4]
,oddOneOut()
должен возвращать3
; когдаA = [3, 0, 0, 4, 2, 1]
,oddOneOut()
должен возвращать5
.
Очевидно, что это простая задача для решения с помощью алгоритма O(n2)
(и, скорее всего, O(n)
, я просто этого не вижу!). Я попытался решить эту проблему, используя всевозможные методы, но безрезультатно. Я пытаюсь решить эту проблему на Java, но если вы более комфортно решаете ее на Python, это тоже будет хорошо.
Спасибо заранее...