
At Stripe, you are given an unsorted list of integers and a target value. Return the indices of the two distinct elements whose values add up to the target.
Implement a function that takes:
nums: a list of integerstarget: an integerReturn:
[i, j] where i != j and nums[i] + nums[j] == target[]You may assume indices can be returned in any order unless otherwise specified.
Example 1
nums = [2, 7, 11, 15], target = 9[0, 1]nums[0] + nums[1] = 2 + 7 = 9Example 2
nums = [3, 2, 4], target = 6[1, 2]nums[1] + nums[2] = 2 + 4 = 6Example 3
nums = [3, 3], target = 6[0, 1]2 <= len(nums) <= 10^5-10^9 <= nums[i] <= 10^9-10^9 <= target <= 10^9O(n) solution is preferrednums = [2, 7, 11, 15], target = 9Output[0, 1]WhyThe values at indices 0 and 1 are 2 and 7, and they add up to 9.nums = [3, 2, 4], target = 6Output[1, 2]WhyThe values 2 and 4 form the target sum, so the correct indices are 1 and 2.nums = [3, 3], target = 6Output[0, 1]WhyThe same numeric value can be used twice only because it appears at two different indices.2 <= len(nums) <= 10^5-10^9 <= nums[i] <= 10^9-10^9 <= target <= 10^9Use two distinct indicesReturn [] if no valid pair existsdef two_sum(nums, target):