Two Sum 兩數之和
題目描述
解法1、切片後查找
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
for i in nums:
j = target - i
start_index = nums.index(i)
next_index = start_index + 1
temp_nums = nums[next_index:]
if j in temp_nums:
return [nums.index(i), next_index + temp_nums.index(j)]
注意返回值index的轉換
解法2、hash字典
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
dict = {}
for i in range(len(nums)):
if target - nums[i] not in dict:
dict[nums[i]] = i
else:
return [dict[target-nums[i]], i]
解法3、同2
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
dict = {}
for i, num in enumerate(nums):
if target - num in dict:
return [dict[target-num], i]
dict[num] = i
藉助枚舉函數,方法同2