'Two Sum' Problem and its Optimized Solution | C# | Unity Game Engine


Solution.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Solution : MonoBehaviour
{
    public int[] nums = { 2, 7, 11, 15 };
    public int target = 9;

    void Start()
    {
        var result = TwoSum(nums, target);
        Debug.Log("Result => " + string.Join(',', result));
    }

    public int[] TwoSum(int[] nums, int target)
    {
        var lookup = new Dictionary<int, int>();
        for (int i = 0; i < nums.Length; i++)
        {
            int secondNum = target - nums[i];
            if(lookup.ContainsKey(secondNum))
                return new[] {lookup[secondNum], i};
            lookup[nums[i]] = i;
        }
        return System.Array.Empty<int>();
    }
}