Здравейте на всички!
Кодът ми минава само 10 от 12 теста и понеже грешните тестове са скрити, бих помолил за помощ, да разбера какво да променя в решението си,.
Също така бих се радвал ако някой може да даде хинт за по-добър начин на решаване на тази задача
ето го кода ми:
Условието на задачата:
Array Search
Given an array of integers, some elements appear twice and others appear once. Each integer is in the range of [1, N], where N is the number of elements in the array.
Find all the integers of [1, N] inclusive that do NOT appear in this array.
Input
Read from the standard input:
- There is one line of input, containing N amount of integers, seperated by a comma (",")
Output
Print to the standard output:
- There is one line of output, containing the sorted integers, seperated by a comma (",")
Constraints
- N will always be in the range of [5, 1000]
Sample Tests
Input
1,2,3,3,5
Output
4
Input
4,3,2,7,8,2,3,1
Output
5,6
Input
1,1,1,1,1,1,1,1
Output
2,3,4,5,6,7,8
Благодаря предварително!
Да, аз също го направих с ArrayList
.
В последните две (11, 12) проверки система не дава output. Предполага се, че входни данни от системата са редица от последователни числа от 1 до N (където N - брой на елементи) и няма цифри които да липсват. Пример: 1,2,3,4,5,6. В този случай, условие не се изпълнява, что-то всички числа присъстват и нищо не се извежда.
Find all the integers of [1, N] inclusive that do NOT appear in this array.
Твоят код дава грешка в този случай (1,2,3,4,5,6). Exception in thread “main” java.lang.StringIndexOutOfBoundsException: Range [0, -1) out of bounds for length 0
Пробвай да сортираш массив и направиш проверка, ако редица от числа 1 до N (където N - брой на елементи) е последователен и няма пропуснати, значи нищо да не се изписва в output.
Можеш да пробваш и да използваш ArrayList
, трябва да стане по лесно решение.
Ако ще имаш затруднения, пиши.
1 Like
Благодаря ви, клеги реших я задачата.
сложих допълнителната проверка:
if (output != "" ) {
System.out.print(output.substring(0, output.length() - 1));
} else {
System.out.println("");
}
и стана 100 от 100
2 Likes