我如何在Java中返回元素的当前索引

问题描述 投票:0回答:1

具有i

class Main {
static int[] diff(int arr[], int n){
 int index1=0;
 int index2=0;
 int maxdiff=0;
 int[] ans=new int[3];
 int i,j;
 for (i=0; i<n; ++i){
   for (j=n-1; j>i; --j){
     if(arr[i]>arr[j] && maxdiff<arr[i]-arr[j])
     maxdiff=arr[i]-arr[j];
     index1=i;
     index2=j;
     ans[0]=index1;
     ans[1]=index2; 
     ans[2]=maxdiff;

  }
 }
return ans;

}

 public static void main(String[] args) {
   Main max = new Main();
   int arr[]={1,20,2,6,11,16,8};
   int n=arr.length;
   int[] ans=max.diff(arr, n);
    System.out.println("i="+ans[0]);
    System.out.println("j=" + ans[1]);
    System.out.println(ans[2]);
  }
}

如您所见,我要打印i = 2和j = 3,因为arr [2] -arr [3]是最大的反转,如果有人可以给我一些建议,我将不胜感激。

java arrays divide-and-conquer inversion
1个回答
0
投票

这是一个经典的编程问题。只需使用合并排序即可解决这一问题。

© www.soinside.com 2019 - 2024. All rights reserved.