力扣:第一题:1. 两数之和

题目:

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9

所以返回 [0, 1]

Python3代码实现:

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        # 初始化一个字典,用于存储遍历过元素的下标,字典的键是列表中的值,值是对应的下标
        records = dict()

        # 遍历nums列表,通过enumereat函数,遍历nums列表的每个元素value和下标index
        for index, value in enumerate(nums):
            # 每遍历一个值,检查target-value(当前值)是否在字典当中
            if target - value in records:
                # 如果找到了匹配的键,说明nums列表中存在两个数之和等于target,则返回他们的下标
                # records[target - value]表示的是与index所指的元素相加等于target的值的下标
                return [records[target - value], index]
            # 如果没有找到匹配的键,就将当前的元素value和对应下标index记录在字典records当中
            records[value] = index
            # 如果遍历完还没找到两数之和,则返回一个空列表
        return []

上述代码实现解释:

上述代码实现了一个函数 twoSum,接受两个参数:一个整数列表 nums 和一个目标整数 target。函数的目的是在 nums 列表中找到两个数的下标,使得这两个数的和等于 target,如果找到这样的两个数的下标,则返回一个列表 [index1, index2],其中 index1index2 分别是这两个数在 nums 列表中的下标。具体解释如下:

  1. 初始化一个字典 records:用于存储遍历过的元素和它们的下标。字典的键是列表中的值,值是对应的下标。

  2. 遍历 nums 列表:通过 enumerate 函数,代码遍历 nums 列表的每个元素 value 以及其下标 index

  3. 查找目标值的匹配:在遍历过程中,代码检查 target - value 是否在 records 字典中。如果找到了匹配的键,说明 nums 列表中存在两个数的和等于 target,返回它们的下标 [records[target - value], index]

  4. 记录当前元素:如果没有找到匹配的键,就将当前元素 value 和它的下标 index 记录在 records 字典中。

  5. 返回空列表:如果遍历完列表后仍然没有找到两个数的和等于 target,则返回一个空列表 []

enumerate 函数解释:

  enumerate 是 Python 标准库中一个内置函数,它用于在迭代一个可迭代对象(如列表、元组、字符串等)时,同时获得元素的索引(下标)和元素的值,enumerate 函数返回一个迭代器,每次迭代都会返回一个元组,该元组包含两个元素:元素的下标和元素本身。

enumerate基本语法如下:

enumerate(iterable, start=0) 
  • iterable 是一个可迭代对象,例如列表、元组、字符串等。(上述题目是列表)
  • start 是一个可选参数,表示下标的起始值,默认为 0。如果设置为其他值,则迭代开始时的下标将从该值开始。

举个例子:

my_list = ['a', 'b', 'c', 'd']

# 使用 enumerate 函数
for index, value in enumerate(my_list):
    print(f"Index: {index}, Value: {value}")

在这个例子中,enumerate 函数在迭代 my_list 列表的同时返回元素的下标 index 和元素的值 value,输出是:

Index: 0, Value: a
Index: 1, Value: b
Index: 2, Value: c
Index: 3, Value: d

可以看到 enumerate 函数在迭代 my_list 列表的过程中,将每个元素和它的下标一起返回。

综上,本文的对于力扣1. 两数之和的Python3解答,仅仅是个人学习资料记录,也十分高兴我的见解可以帮助其他的正在做这个题目的同学,基础较差,仅仅是个人见解,大神勿喷,欢迎交流,谢谢!

  • 21
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

又在熬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值