How to find pairs in an array with a given difference N between them in C#

1 Answer

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

public class Program
{
	public static void findPairs(int[] arr, int diff) {
		ISet<int> set = new HashSet<int>();

		foreach (int i in arr) {
			if (set.Contains(i - diff)) {
				Console.WriteLine(i + ", " + (i - diff));
			}

			if (set.Contains(i + diff)) {
				Console.WriteLine((i + diff) + ", " + i);
			}

			set.Add(i);
		}
	}
	public static void Main(string[] args)
	{
		int[] arr = new int[] {4, 1, 7, 5, 8, 6, 9, 10, 12};
		int diff = 3;

		findPairs(arr, diff);
	}
}




/*
run:
  
4, 1
7, 4
8, 5
9, 6
10, 7
12, 9
  
*/

 



answered Jul 16, 2022 by avibootz
...