为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕标琳琳 2024-01-25 15:19:00
[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=2,j=3因为arr[2]-arr[3]这是最大的反转,如果有人能给我一些建议,我将不胜感激。
查看完整描述

1 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

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]);

  }

}


查看完整回答
反对 回复 2024-01-25
  • 1 回答
  • 0 关注
  • 23 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信