Я написал пример кода ниже, чтобы найти недостающее число в неупорядоченном списке. например {5,2,3} следует вернуть {1,4}. Мой вопрос в том, является ли использование HashMap для быстрого просмотра правильным? Диапазон - 1 и максимальное число из списка ввода.Поиск недостающего номера в неупорядоченном списке
public List<Integer> findMissing(List<Integer> numbers) {
int max = 0;
List<Integer> result = new ArrayList<Integer>();
Map<Integer,Integer> map = new HashMap<Integer,Integer>();
for(Integer num : numbers) {
if(num > max)
max=num;
map.put(num,num);
}
int missingCount=max-numbers.size();
for(int i=1;i<=max;i++) {
if(missingCount == 0) break;
if(!map.containsKey(i)) {
result.add(i);
missingCount--;
}
}
return result;
}
Определить _missing_. Как насчет 0? Как насчет 6? Как насчет 24123123? Это диапазон? –
Знаете ли вы диапазон списка? – jpganz18
В вашем коде, если первое число равно 0, все остальное сломано. – jpganz18