我有一个Java程序,在该程序中,我们得到一个数组,可以说{20,5,7,9},在该数组中,我们必须执行以下操作:(索引在这里无关紧要)
使用ArrayList代替数组,因为Java数组是静态的,因此实例化后数组的大小不能更改,也不能删除元素并减小数组的大小。
int max = -Integer.MIN_VALUE;
int maxIndex = -1;
遍历数组并将每个元素插入到arraylist中
ArrayList<Integer> list = new ArrayList<>();
for(int i : arr){
list.add(i);
}
现在将数组转换为ArrayList,在此处找到最大值。然后将max存储在temp变量中。从列表中删除最大值后,我们将使用temp通过Math.floorDiv(a,b)函数将楼层除以2。
for(int i = 0; i< list.size; i++){
max = temp;
list.remove(i);
list.add(Math.floorDiv(temp,2));
}
}
输出的完整代码如下:
import java.util.*;
public class Main{
该函数将从数组中找到最大数目,然后将floorDiv()减2,然后将其插入回去。
static ArrayList<Integer>solve(ArrayList<Integer>list){
int max = -Integer.MIN_VALUE;
int maxIndex = -1;
for(int i = 0; i< list.size(); i++){
if(list.get(i) > max){
int temp = list.get(i);
max = temp;
list.remove(i);
list.add(Math.floorDiv(temp,2));
}
}
return list;
}
public static void main(String[] args) {
int [] arr = new int[]{20 ,5 ,7 ,9};
ArrayList<Integer> list1= new ArrayList<>();
for(int a : arr){
list1.add(a);
}
Main obj = new Main();
System.out.println(obj.solve(list1));
}
}
输出为:[5、7、9、10]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句