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

原创 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));
	}
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

已知一个几乎有序的数组,几乎有序是指,如果把数组排好顺序的话,每个元素移动的距离可以不超过k,并且k相对于数组来说比较小。请选择一个合适的排序算法针对这个数据进行排序。 给定一个int数组A,同时给定

已知一个几乎有序的数组,几乎有序是指,如果把数组排好顺序的话,每个元素移动的距离可以不超过k, 并且k相对于数组来说比较小。请选择一个合适的排序算法针对这个数据进行排序给定一个int数组A, ...

求数组中元素的最短距离

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

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

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

两数组最短距离

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

两数组最短距离

# -*- coding: cp936 -*- ''' 两数组最短距离 已知两个元素从小到大排列的数组x[]与y[],请编写一个程序算出两个数组元素 彼此之间差的绝对值中最小的一个数,此值称做数组的...

TCP连接建立(三次握手)和释放(四次握手)

转自:http://longzxr.i.sohu.com/blog/view/189988839.htm TCP报文段首部格式: 序号:本报文段所发送的数据的第一个字节的序号。 ...

字符串之数组中两个字符串的最小距离

题目: 给定一个字符串数组strs, 再给定两个字符串str1和str2,返回在strs中str1和str2的最小距离,如果str1和str2为null,或者不再strs中,都返回-1 列如: ...

两数组最小距离问题

已知两个元素从小到大排列的数组x[]和y[],请写出一个程序算出两个数组元素彼此之间差的绝对值中最小的一个,这个叫做数组的距离。         这个问题不难,可以通过一个循环嵌套循环解决。但是既然...

求三个数组的最小距离

已知三个升序整数数组a[l], b[m]和c[n]。请在三个数组中各找一个元素,使得组成的三元组距离最小。三元组的距离定义是:假设a[i], b[j]和c[k]是一个三元组,那么距离为: dista...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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