java - 如何返回java中元素的当前索引?

标签 java arrays divide-and-conquer inversion

一对位置[i, j]具有 i < j 的属性和A[i] ≥ A[j] (即反转), 这样A[i] − A[j]是 A 中所有反转中可能的最大值。

    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=2j=3因为arr[2]-arr[3]是最大的反转,如果有人能给我一些建议,我将不胜感激。

最佳答案

public 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-1; ++i){
//   for (j=i+1; j>i; --j){
//     if(arr[i]>arr[j] && maxdiff<Math.abs(arr[i]-arr[j]))
//     maxdiff=Math.abs(arr[i]-arr[j]);
//     index1=i;
//     index2=j;
//     ans[0]=index1;
//     ans[1]=index2; 
//     ans[2]=maxdiff;
//
//  }
     if(maxdiff<Math.abs(arr[i]-arr[i+1]))
     {
         maxdiff=Math.abs(arr[i]-arr[i+1]);
         ans[0]=i;
         ans[1]=i+1;
         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]);
  }
}

关于java - 如何返回java中元素的当前索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58654668/

相关文章:

java - 在Java中,如何下载重定向的页面?

java - 任务 ':app:processDebugGoogleServices' Firebase&Android Studio 执行失败

java - 向二维数组添加元素有困难

Java:如何将列表转换为集合然后比较缺失值

java - CardLayout - 定位组件

algorithm - 分而治之 - 找到包含唯一元素的两个大小相等的数组之间的中位数?

algorithm - O(n) 中的主要点集

c++ - 返回排序数组中重复数字计数的函数

javascript - 检查 switch 语句 Javascript 中具有特定键/值对的对象

iphone - 如何更新 [[UIApplication sharedApplication] ScheduledLocalNotifications] 数组?