Я пытаюсь найти здесь сумму квадрата каждого элемента массива. В цикле while(no>-1)
для каждой итерации я обнаружил элемент с наибольшим значением. После этого я уменьшил это значение на 1.
Вот в чем дело. Достигнув точки, где в массиве осталось несколько максимальных значений, вычитание не сработало. Буду очень признателен, если вы, ребята, сможете мне помочь. Спасибо.
import java.util.Arrays;
class NoOvertime {
public int noOvertime(int no, int[] works) {
int result = 0;
int[] temp = works;
int index =0;
int maxval =0;
while(no>-1){
maxval = Arrays.stream(temp).max().getAsInt();
System.out.println(maxval);
index =Arrays.asList(temp).indexOf(maxval)+1;
temp[index]= temp[index]-1;
no--;
}
for(int i=0;i<works.length;i++){
result += works[i]*works[i];
}
return result;
}
public static void main(String[] args) {
NoOvertime c = new NoOvertime();
int []test = {7,5,3};
System.out.println(c.noOvertime(4,test));
}
}
что я получаю после выполнения кода это:
7
6
5
5
5
38