我在这里要做的是找到数组中每个元素的平方值之和。在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
答案 0 :(得分:0)
Arrays.asList(temp)
生成List<int[]>
(恰好包含1个int []项),而不是List<Integer>
。因此,index
始终为0,因为indexOf
将始终返回-1。