LeetCode题一:求两数之和
Python写法:
from typing import List
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
num_dict = {}#创建一个空字典 num_dict,用于存储数组中的元素及其对应的索引。字典的键是数组元素的值,值是该元素在数组中的索引。
for i, num in enumerate(nums):
complement = target - num#对于当前遍历到的元素 num,计算 target 与 num 的差值 complement。如果数组中存在另一个元素的值等于 complement,那么这两个元素的和就等于 target。
if complement in num_dict:
return [num_dict[complement], i]#检查 complement 是否已经存在于字典 num_dict 的键中。如果存在,说明找到了两个元素的和等于 target,则返回这两个元素的索引,其中 num_dict[complement] 是 complement 对应的索引,i 是当前元素的索引。
num_dict[num] = i#如果 complement 不在字典中,将当前元素 num 及其索引 i 存入字典 num_dict 中,以便后续查找。
return []#不满足返回空值
# 获取用户输入
nums = list(map(int, input("num=").split()))
target = int(input("target="))
# 创建 Solution 类的实例
solution = Solution()
# 调用 twoSum 方法
result = solution.twoSum(nums, target)
print(result)
第一次做题遇到了很大的阻碍,通过查阅资料才知道自己还存在着诸多不足,而且听同学讲LeetCode只需把主代码写出来就可以,输入问题困扰了我将近一节课,我还需要继续努力!