Find all the index from an array whose sum value is equal to n

824 Views Asked by At

So, I needed to find all the index of elements from an array whose sum is equal to N.

For example : Here I want to find indexes whose sum should be equal to 10.

Input : int[] arr = { 2, 3, 0, 5, 7 } Output: 0,1,3

If you add indexes arr[0] + arr[1] + arr[3] then 2 + 3 + 5 = 10.

I have tried this, but I am running 3 for loops and 3 if conditions, Can we write this in less code, I want to reduce code complexity.

PS: Post suggestions, not codes..

public static void Check1()
            {
                int[] arr = { 2, 3, 0, 5, 7 };
    
                int target = 10; int total = 0;
                bool found = false;
                List<int> lst = new List<int>();
    
                for (int i = 0; i < arr.Length; i++)
                {
                    if (!found)
                    {
                        for (int j = i + 1; j < arr.Length; j++)
                        {
                            if (!found)
                            {
                                total = arr[j] + arr[i];
    
                                for (int k = j + 1; k < arr.Length; k++)
                                {
                                    if (total + arr[k] == target)
                                    {
                                        found = true;
                                        Console.WriteLine($"{i}, {i + 1}, {k}");
                                        break;
                                    }
                                }
                            }
                        }
                    }
                }
    
                Console.ReadLine();
            }
0

There are 0 best solutions below