Я завершил Hackerrank's "Birthday Cake Candles" challenge и прошел 6 из 8 тестов, используя следующий код, который сортирует массив, затем увеличивает частоту, что максимальная ИНТ происходит и печатает, которые ценят:Почему ошибка времени выполнения для 2 из 8 случаев?
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int numCandles = in.nextInt();
int height[] = new int[numCandles];
for(int height_i=0; height_i < numCandles; height_i++){
height[height_i] = in.nextInt();
}
//Option 2: Sort the array, then count the number that are highest.
Arrays.sort(height);
int max = height[height.length - 1];
int index = height.length - 1;
int freq = 0;
while(height[index] == max) {
freq++;
index--;
}
System.out.println(freq);
}
}
Это не проходит тест Дело № 6 (input) или тестовый пример № 7. Короче говоря, тестовый случай № 6 - 100 000 случаев int 999999, а тестовый случай № 7 - 100 000 случаев int 1. Ожидаемый выход для обоих должен быть 100000.
Я думаю, что это может столкнуться с runtime error из-за метода сортировки, который я вызываю в массиве, и массив, пытающийся снова и снова сортировать ints равного значения? Может ли кто-нибудь объяснить, почему мой код не будет работать для этих двух тестовых случаев?
Arrr, что происходит, когда ** вы ** запускаете этот код? – GhostCat
вы должны закрыть свой входной сканер –
, чтобы проверить, что в 'while-loop', когда индекс меньше нуля. –