У меня есть массив и длинная переменная типа total
, что означает ее сумму.Оптимизация в сумме массива в java
Если массив длины п, то суммирование это должно быть сделано так: sum = arr[0] + arr[n-1] + arr[1] + arr[n-2] +...
до sum >= total
и я должен напечатать строку элементов в сумме
Мой подход: Я выполнил цикл до n/2
, если n равно или n/2 + 1
, если n нечетно.
я делать что-то вроде этого:
String s = "";
if (n % 2 ==0)
loop = n/2;
else
loop = n/2 + 1;
for(int i=0 ; i < loop ; i++){
sum += arr[i];
s += arr[i] + " ";
if(check(sum , total)==true) break; //this function checks if sum>=total.
sum += arr[n];
s += arr[n] + " ";
if(check(sum , total)==true) break;
n--;
}
System.out.println(s);
Пример: обр [] = {10, 20, 30, 40, 50} и общее = 120, то вывод должен быть:
10 50 20 40
мой подход неподвижных дает TLE в некоторых тестовых случаях. Мне нужно больше оптимизированного решения, чем это. Помогите мне здесь.
Что такое TLE? И как «проверка» прерывает цикл? Выбрасывает исключение? – Eran
TLE превышен лимит времени. –
TLE превысил лимит времени и не выбрасывает исключение. –