数组中两个元素的最小距离

原创 2015年07月06日 20:00:57
/**
 * 给定一个数组,数组中含有重复元素,给定两个数字,求这两个数字在数组中出现位置的最小距离。
 * 当遇到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));
	}
}

有两等长数组A,B,所含元素相同,但顺序不同,只能取得A数组某值和B数组某值进行比较,比较结果为大于,小于,等于,但是不能取得同一数组A或者B中两个数进行比较,也不能取得某数组中的某个值

有两个数组a和b,两个数组的元素相同,但是顺序不同,写一个算法求出数组a和数组b中元素之间的对应关系。题意要求不能对同一个数组中的两个元素进行比较,也不能去取数组元素中的特定值进行比较。只能进行a和b...

算法之 数组的“距离”

Description: 给定数组A[0---n-1],找出数组中欧你

求数组中元素的最短距离

题目:给定一个含有n个元素的数组,找出数组中的两个元素X和Y使得abs(x-y)最小 解题思路:先排序,然后遍历元素。 #include //#include #include using n...

两数组最短距离

两数组最短距离 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 已知元素从小到大排列的两个数组x[]和y[]...

求数组中两个元素的最小距离

int findNearPosition(int array[], int len, int A, int B) { if (array == null || len == 0) return ...

数组之间的距离

两数组最短距离 已知元素从小到大排列的两个数组x[]和y[],请写出一个程序算出两个数组彼此之间差的绝对值中最小的一个,这叫做数组的距离。 input 第一行为两个整数m, n(1≤m, n≤1...

数组中两个元素最小的距离

$arr=array(1,2,4,3); //在数组中求两个数字的最小距离 function getMin($a,$b){ $min=($a>$b)?$b:$a; return $mi...

数组中两个元素的最小距离

问题:给定一个数组,数组中含有重复元素,给出两个数n1和n2,求这两个数在数组中所出现位置的最小距离。例如,数组{4,5,6,4,7,4,6,4,7,8,5,6,4,3,10,8},4和8的最小距离是...

【谷歌面试题】求数组中两个元素的最小距离

一个数组,含有重复元素,给出两个数num1和num2,求这两个数字在数组中出现的位置的最小距离 O(n)时间复杂度,O(1)空间复杂度 int minDistance(int A[], int s...

分治法:求解一个乱序数组中距离最近的两个数

采用分治法求解一个乱序数组中距离最近的两个数 例如:3,4,1,6,71,19,10,25  返回1  即返回(4-3=1)的值。 采用分治法的算法如下: 简单分享思想: 从数组中间取个数,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数组中两个元素的最小距离
举报原因:
原因补充:

(最多只允许输入30个字)