Array Search [минава 10 от 12 теста]

Здравейте на всички!

Кодът ми минава само 10 от 12 теста и понеже грешните тестове са скрити, бих помолил за помощ, да разбера какво да променя в решението си,.

Също така бих се радвал ако някой може да даде хинт за по-добър начин на решаване на тази задача :slight_smile:

ето го кода ми:

Условието на задачата:

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

Благодаря предварително!

Пробвай с List

1 Like

Да, аз също го направих с 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, трябва да стане по лесно решение.

Ако ще имаш затруднения, пиши. :slight_smile:

1 Like

Благодаря ви, клеги :slight_smile: реших я задачата.

сложих допълнителната проверка:

        if (output != "" ) {

        System.out.print(output.substring(0, output.length() - 1));
        } else  {
        System.out.println("");
        }

и стана 100 от 100 :sunglasses:

2 Likes