I am not an expert in C++ but I can give a feedback about the Python solution. Your current solution runs in \$O(n^2)\$. Basically, for each number `n` of the input `nums`, find `target - n` in `nums`. How to improved it? The second part of the algorithm can be improved from \$O(n)\$ to \$O(1)\$. Instead of looking up `target - n` in a list, you can use a dictionary: def two_sum(nums: list, target: int): num_index = {} for i, n in enumerate(nums): match = target - n if match in num_index: return num_index[match], i num_index[n] = i return -1 Results: ``` Original: Runtime: 772 ms. Memory Usage: 14.4 MB Improved: Runtime: 48 ms. Memory Usage: 15.5 MB ```