Pattern
Pattern
Pattern
Use maps, sets, counters, and prefix state to make repeated lookups cheap.
Track what you have seen, then answer each step with O(1) lookups.
seen = {}
for i, value in enumerate(nums):
needed = target - value
if needed in seen:
print(seen[needed], i)
break
seen[value] = i