如何 return java 中元素的当前索引?
How do I return current index of an element in java?
一对位置[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]
是最大的反转,如果有人能给我一些建议,我将不胜感激。
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]);
}
}
一对位置[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]
是最大的反转,如果有人能给我一些建议,我将不胜感激。
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]);
}
}