Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,971 questions

51,913 answers

573 users

How to find the maximum distance between two occurrences of same number in array with C#

1 Answer

0 votes
using System;
using System.Collections.Generic;

public class Program
{
	static int GetMaxDistance(int[] arr) {
		Dictionary<int, int> dict = new Dictionary<int, int>();
		int maximumDistance = 0;
		int size = arr.Length;

		for (int i = 0; i < size; i++) {
			if (!dict.ContainsKey(arr[i])) {
				dict[arr[i]] = i;
				Console.Write("dict[arr[i]]=" + dict[arr[i]]);
				Console.Write(" arr[i]=" + arr[i]);
				Console.WriteLine(" i=" + i);
			}
			else {
				maximumDistance = Math.Max(maximumDistance, i - dict[arr[i]]);
				Console.Write("dict[arr[i]]=" + dict[arr[i]]);
				Console.Write(" i - dict[arr[i]]=" + (i - dict[arr[i]]));
				Console.WriteLine(" i=" + i);
			}
		}
		return maximumDistance;
	}
	public static void Main(string[] args)
	{
		int[] arr = new int[] {7, 1, 4, 3, 1, 5, 3, 4, 9, 1, 3};

		Console.Write(GetMaxDistance(arr));
	}
}




/*
run:

dict[arr[i]]=0 arr[i]=7 i=0
dict[arr[i]]=1 arr[i]=1 i=1
dict[arr[i]]=2 arr[i]=4 i=2
dict[arr[i]]=3 arr[i]=3 i=3
dict[arr[i]]=1 i - dict[arr[i]]=3 i=4
dict[arr[i]]=5 arr[i]=5 i=5
dict[arr[i]]=3 i - dict[arr[i]]=3 i=6
dict[arr[i]]=2 i - dict[arr[i]]=5 i=7
dict[arr[i]]=8 arr[i]=9 i=8
dict[arr[i]]=1 i - dict[arr[i]]=8 i=9
dict[arr[i]]=3 i - dict[arr[i]]=7 i=10
8

*/

 



answered Dec 17, 2022 by avibootz
edited Dec 17, 2022 by avibootz
...