In computational complexity theory, 3SUM is the following computational problem conjectured to require roughly quadratic time:

Given a set S of n integers, are there elements a, b, c in S such that a + b + c = 0?

It is possible to solve the algorithm in O(n2) time using simple algorithms, and matching lower bounds are known for some specialized models of computation.

The program mentioned below works only with sorted List

 public static void SortedList3SumProblem(int[] inputArray)
    {
      int a, b, c;
      int length = inputArray.Length;
      for (int i = 0; i < length - 3; i++)
      {

        a = inputArray[i];
        int k = i + 1;
        int l = length  - 1;

        while (k < l)
        {
          b = inputArray[k];
          c = inputArray[l];
          if (a + b + c == 0)
          {
            Console.WriteLine(a + "," + b + "," + c); ;
            break;
          }
          else if (a + b + c > 0)
            l = l - 1;
          else
            k = k + 1;
        }

      }
    }

Input

0, -25, -10, -7, -3, 2, 4, 8, 10

Output

Input Array

0;-25;-10;-7;-3;2;4;8;10

——————————–

0,-10,10

-10,2,8

-7,-3,10