
At Lyft, you are given an unsorted list of integers and a target value. Return the indices of the two distinct elements whose sum equals the target.
Implement a function that takes:
nums: a list of integerstarget: an integerReturn:
[i, j] where i != j and nums[i] + nums[j] == targetYou may assume exactly one valid answer exists, and you may not use the same element twice.
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^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 = [0, 4, 3, 0], target = 0Output[0, 3]WhyTwo different zero values appear at indices 0 and 3.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):