TwoSum Example in C#: Print and Count Pairs with Given Sum
Nick
Posted on January 21, 2024
In C#, the two-sum problem refers to finding pairs of integers in an array that sum up to a given target value. This is a common coding exercise that tests your ability to efficiently manipulate arrays and solve problems with two pointers.
In this post, we will discuss an example of how to implement a two-sum solution in C#. We will focus on printing and counting the pairs that satisfy the given sum.
First, let's define a method called FindPairs
that takes an array of integers arr
and a target sum target
as parameters. This method will iterate through the array using two pointers, one starting from the beginning and the other from the end. For each comparison, we will determine if the elements sum up to the target and increment our count if they do.
public static int FindPairs(int[] arr, int target)
{
int count = 0;
int left = 0;
int right = arr.Length - 1;
Array.Sort(arr); // Sorting the array allows efficient two-pointer traversal
while (left < right)
{
int currentSum = arr[left] + arr[right];
if (currentSum == target)
{
count++;
Console.WriteLine($"Pair found: {arr[left]}, {arr[right]}");
left++;
right--;
}
else if (currentSum < target)
{
left++;
}
else
{
right--;
}
}
return count;
}
In this method, we initialize our count, left pointer (left
), and right pointer (right
). We also sort our array using Array.Sort(arr)
to optimize the two-pointer traversal.
Inside the while loop, we calculate the current sum of the elements at the left and right pointers. If the current sum is equal to the target sum, we increment our count, print the pair, and move both pointers toward the center. If the current sum is less than the target sum, we advance the left pointer to explore larger elements. Conversely, if the current sum is greater than the target sum, we decrement the right pointer to explore smaller elements.
Let's see an example usage of the FindPairs
method:
public static void Main()
{
int[] arr = { 1, 4, 2, 3, 5, 6, 7 };
int target = 8;
int count = FindPairs(arr, target);
Console.WriteLine($"Total Pairs: {count}");
}
In this example, we have an array [1, 4, 2, 3, 5, 6, 7]
and a target sum of 8
. Running this code will output:
Pair found: 1, 7
Pair found: 2, 6
Pair found: 3, 5
Total Pairs: 3
As we can see, the method successfully finds and prints the pairs that sum up to the target value and returns the count of pairs found.
In conclusion, implementing a two-sum solution in C# efficiently requires the use of two pointers and sorting the input array. The provided example demonstrates how to print and count such pairs using the two-pointer approach. Understanding and practicing these techniques will enhance your problem-solving skills in C#.
Posted on January 21, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.