如何在数组中找到max,然后删除该max元素,并将该max元素插入java中的除以2(底数除法)

哈尼什:

我有一个Java程序,在该程序中,我们得到一个数组,可以说{20,5,7,9},在该数组中,我们必须执行以下操作:(索引在这里无关紧要)

  1. 在此数组中找到max元素,然后删除数组中的该元素。
  2. 然后再将max元素除以2(底数除法)。我们可以在任意位置添加max元素除以2。
佐德将军:

使用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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章