C# Interview question :-Find Pair Of Integers in Array whose Sum is Given Number.
Recently, I have been to an interview and was asked to solve a problem with solution not having complexity of O(N square).
The problem was as follows :-
Now we need to find the complementary set of elements having sum of 6.
That is combination of 2 elements should give a sum of 6, so we had to write an algorithm to get the total number of such pairs in above example the total number of pairs will be 3.
I could achieve this using 2 for loops but the interviewer wanted a better way.
Below is the code with the comments
int arr = newint 5, 4, -3, 1, 2, 9 }; // Step 1 :- Sort the array in ascending manner Array.Sort(arr); int k = 6; int left = 0; int right = arr.Length - 1; // Step 2 :- Take two pointers one which moves from // the left of the array and the second from right of the array while (left < right) int sum = arr[left] + arr[right]; // Step 3 :- If sum is proper then add from the left // substract from the right if (sum == k) Console.WriteLine(arr[left] + " " + arr[right]); left = left + 1; right = right - 1; } elseif (sum < k) // Step 4 :- If target total is greater than // the sum then advance from the left left = left + 1; } elseif (sum > k) // Step 5 :- If target total is less than // the sum then substract from the right right = right - 1; } } Console.Read();