Здравейте на всички!
Моля за помощ че не знам как да имплементирам isSorted така, то да връща не само резултата от чекването на последните два елемента (както е вмомента и затова ми излиза грешен резултат), а то да чеква целият масив (както трябва според задачата).
Input
3
1,2,3,4,5
1,2,8,9,9
1,2,2,3,2
Output
true
true
false
Кодът:
Благодаря предварително!
Проблемът ти идва от тaзи проверка:
if (array[i] <= array[i + 1])
sorted = true;
Тук проверяваш дали всеки следващ елемент е по-голям от предишния и записваш резултата.
Трябва да записваш резултата само ако не е по-голям,
защото ако например имаш
int[] arr = {5, 4, 3, 2, 1, 10};
Ще направиш 5 проверки и резултатът от всяка ще е:
false, false, false, false, true и така като винаги записваш резултатът от последната, ще ти върне true.
За да го избегнеш трябва да кажеш, че ако array[i] <= array[i + 1]
е true, значи всичко е наред и продължи към следващата итерация. Това става с думата continue
.
Направи sorted да е равно на true. Приемаш, че по default ще е сортиран листа.
boolean sorted = true;
и след това само промени първият if да не записва резултат, а да е continue;
if (array[i] <= array[i + 1])
continue;
Съветвам те да дебъгнеш след като сложиш continue и ще ти се изясни всичко.
1 Like
100 от 100! Много Благодаря!
1 Like