package com.interview.array; /** * http://www.geeksforgeeks.org/find-the-minimum-distance-between-two-numbers/ */ public class MinimumDistanceBetweenTwoNumbers { public int minDistance(int input[],int x, int y){ int prev = -1; int prevFound = -1; int min = 10000; for(int i=0; i < input.length; i++){ if(input[i] == x){ if(prevFound == -1){ prevFound = x; prev = i; }else if(prevFound == x){ prev = i; }else{ min = min > i - prev ? i -prev : min; prev = i; prevFound = x; } }else if(input[i] == y){ if(prevFound == -1){ prevFound = y; prev = i; }else if(prevFound == y){ prev =i; }else{ min = min > i - prev ? i -prev : min; prevFound = y; prev = i; } } } return min; } public static void main(String args[]){ MinimumDistanceBetweenTwoNumbers mdb = new MinimumDistanceBetweenTwoNumbers(); int input[] = {6,4,1,5,6,9,10,4,6,6}; System.out.println(mdb.minDistance(input, 5, 6)); } }