Java 在数组中查找最近数

Java 在数组中查找最近数,java,Java,具有数字的数组,例如1,2,3,4,5 我需要返回与整个数组的平均值最接近的元素。 比如说, 1+2+3+4+5=15 15/5=3 结果应该是数字3 如果没有与平均值相同的数字,则结果应为距数组最近的数字 我只需要返回该值的方法 Integer sum = 0; Integer a = 0; for(int i=0; i<array.getLength();i++) { a = array.get(i); sum=sum+a; } Integer average= sum/

具有数字的数组,例如
1,2,3,4,5

我需要返回与整个数组的平均值最接近的元素。 比如说,

1+2+3+4+5=15
15/5=3
结果应该是数字3

如果没有与平均值相同的数字,则结果应为距数组最近的数字

我只需要返回该值的方法

Integer sum = 0; 
Integer a = 0;
for(int i=0; i<array.getLength();i++)
{
   a = array.get(i); sum=sum+a; 
}
 Integer average= sum/array.getLength();
 return average;
}
整数和=0;
整数a=0;
对于(inti=0;i试试这个::

int[] arr = {1,2,3,4,5};
double closeDiff = 0;
double arravg = getAverage(arr); // write a method which will return the average
int resultIndex = 0;

for(int i=1;i<arr.length;i++)
{

  if(arr[i-1] > arr[i])
  tempDiff = (arr[i-1] - arr[i]);
  else
    tempDiff = (-arr[i-1] + arr[i]);
  if(tempDiff<closeDiff)
   resultIndex = i;
}
return arr[i];
int[]arr={1,2,3,4,5};
双闭合差=0;
double arravg=getAverage(arr);//编写一个返回平均值的方法
int resultIndex=0;
对于(int i=1;i arr[i])
tempDiff=(arr[i-1]-arr[i]);
其他的
tempDiff=(-arr[i-1]+arr[i]);

if(tempDiff这里是一个简单的解决方案。如果数组被排序,可能会使用一些更聪明的算法从数组中获得最接近的值。 如果有两个数字都最接近平均值,则选择数组中第一个出现的数字

编辑更改了比较,因此找到了最接近平均值的最低数字

最接近平均值的公共静态整数(int[]res){
如果(分辨率长度<1){
return null;//如果没有数组,则返回null;
}
int sum=0;//用于对数组求和的变量
for(int i=0;i
void findelement()
{
int[]arr={1,2,3,4,5};
int a`在此处输入代码`ve=3,elem=0;
长tempi=0,tempdiff;
长差=-1;
for(int i=0;itempdiff){
diff=tempdiff;
elem=i;
}
}
System.out.println(“hi元素为“+elem+”,接近平均值为“+arr[elem]);
}

如果平均数为3,数组数为2和4,它是否应该返回2个数字?否,它应该返回较小的数字,在本例中为2。整数和=0;整数a=0;例如(int i=0;iI没有舍入,因为有一些限制,我不能使用排序方法,所以在此期间进行了一些编辑。如果您想要最接近的数字中的最小值,您可以添加,如果在比较actDistance和MindDistance的地方,它是相等的,并且选择了较小的ret和acti值,对不起:1)我没有遵循你们的逻辑,为什么要寻找最接近avarage的值,你们要比较数组中的两个值?2)你们有范围错误,我认为你们在return语句中使用的超出了范围,因为它只在for语句中定义
void findelement()
    {
        int[] arr = {1,2,3,4,5};
        int a`enter code here`ve = 3, elem=0;
        long tempi=0, tempdiff;
        long diff=-1;
        for(int i=0; i<arr.length;i++)
        {
            tempdiff = (long)arr[i]-(long)ave;
            tempdiff = (tempdiff < 0 ? -tempdiff : tempdiff);
            diff = (diff==-1)?tempdiff : diff;
            if(diff>tempdiff){
                diff = tempdiff;
                elem = i;
            }
        }
        System.out.println("hi element is "+elem+" and value near to average is "+arr[elem]);
    }