Как правильно решить тест PermMissingElem от Codility? (Ява)JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как правильно решить тест PermMissingElem от Codility? (Ява)

Сообщение Anonymous »

У меня есть следующая проблема, взятая из упражнений по тестированию кода Codility:

Дан массив A с нулевым индексом, состоящий из N различных целых чисел.
Массив содержит целые числа в диапазоне [1..(N + 1)], что означает
что отсутствует ровно один элемент.
Ваша цель — найти этот недостающий элемент элемент.
Напишите функцию:

class Solution { public int Solution(int[] A);

что для массива A с нулевым индексом возвращается значение отсутствующего
элемента.
Например, дан массив A такой, что:

A[0] = 2
A[1] = 3
A[2] = 1
A[3] = 5

функция должна вернуть 4, так как это недостающий элемент.
Предположим, что:

N — целое число в диапазоне [0..100 000];
элементы из A различны;
каждый элемент массива A представляет собой целое число в диапазоне [1..(N + 1)].

Сложность:

ожидаемая временная сложность в наихудшем случае равна O(N);
ожидаемая пространственная сложность в наихудшем случае равна O(1), за пределами хранилище входных данных (не >учитывая пространство, необходимое для входных аргументов).

Элементы входных массивов можно изменять.
< /blockquote>
Мой подход заключался в том, чтобы преобразовать данный массив в ArrayList, использовать ArrayList, чтобы найти самые низкие и самые высокие значения внутри массива, и перебрать все возможные значения от самого низкого до самого высокого, а затем вернуть недостающее значение.
Это решает проблему примера, но моя проблема, похоже, заключается в том, что я не могу получить правильные ответы при следующих условиях данного массива:

"пустой список и один элемент"
"первый или последний элемент отсутствует"
" один элемент"
"два элемента"

Что я делаю неправильно и как правильно это сделать заняться решением этой проблемы?

Подробнее здесь: https://stackoverflow.com/questions/298 ... -test-java
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»