using System.Collections.Generic;
private static List<int> twoSum(List<int> A, int B)
List<int> _indices = new List<int>();
Dictionary<int, int> _indicesDict = new Dictionary<int, int>();
for(var i = 0; i < _arrCount; i++){
if(!_indicesDict.ContainsKey(A[i])){
_indicesDict.Add(i, A[i]);
for(var j = 0; j < _indicesDict.Count; j++){
var _currKeyValPair = _indicesDict.ElementAt(j);
int _targetNum = B - _currKeyValPair.Value;
if(_indicesDict.ContainsValue(_targetNum)){
if(_indicesDict[_targetNum] < _indices[1] - 1 && _indicesDict[_targetNum] > _currKeyValPair.Value){
_indices[0] = _currKeyValPair.Value + 1;
_indices[1] = _indicesDict[_targetNum] + 1;
_indices.Add(_currKeyValPair.Key + 1);
_indices.Add(_indicesDict.FirstOrDefault(x => x.Value == _targetNum).Key + 1);
public static void Main()
List<int> _HashingSum = new List<int>(){ 1, 1, 1 };
List<int> isSumExist = Program.twoSum(_HashingSum, _target);
Console.WriteLine("The Target sum Indices are: " + string.Join(" ", isSumExist));