/**
* 给定一个数组,数组中含有重复元素,给定两个数字,求这两个数字在数组中出现位置的最小距离。
* 当遇到n1时,记录下当前下标n1_index,当遇到n2时,记录下当前下标n2_index,比较
* n1_index与n2_index的差和记录最小距离的变量min_dist的大小。
* @author chen
*/
public class minDistance {
public static int min(int a,int b){
return (a>b)?b:a;
}
public static int minDistance(int arr[],int n1,int n2){
if(arr==null)
return Integer.MIN_VALUE;
int n1_index=-1,n2_index=-1,min_dis=Integer.MIN_VALUE+1;
for(int i=0;i<arr.length;i++){
if(arr[i]==n1){
n1_index=i;
if(n2_index>=0)
min_dis=min(Math.abs(min_dis),Math.abs(n1_index-n2_index));
}
if(arr[i]==n2){
n2_index=i;
if(n1_index>=0)
min_dis=min(Math.abs(min_dis),Math.abs(n2_index-n1_index));
}
}
return min_dis;
}
public static void main(String[] args) {
int arr[]={4,5,6,4,7,4,6,4,7,8,5,6,4,3,10,8};
System.out.println(minDistance(arr, 4, 8));
}
}
数组中两个元素的最小距离
最新推荐文章于 2023-11-08 21:49:07 发布