
At Stripe, you are given an unsorted integer array nums and an integer target. Write a function that returns the indices of the two distinct elements whose values add up to target.
You may assume there is exactly one valid pair, and you may not use the same element twice.
nums: list of integerstarget: integer[i, j] where i != j and nums[i] + nums[j] == targetExample 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^9nums = [2, 7, 11, 15], target = 9Output[0, 1]WhyThe values at indices 0 and 1 add up to 9.nums = [3, 2, 4], target = 6Output[1, 2]WhyThe values 2 and 4 form the required sum.nums = [3, 3], target = 6Output[0, 1]WhyThe same value can be used twice only if it appears at two different indices.2 <= len(nums) <= 10^5-10^9 <= nums[i] <= 10^9-10^9 <= target <= 10^9Exactly one valid answer existsYou may not use the same element twicedef two_sum(nums, target):