【Coding Girl】LeetCode刷题 : 1. 两数之和 Two Sum

本文介绍了解决LeetCode经典题目“两数之和”的Python实现方法。通过遍历数组寻找目标值减去当前元素后的差值是否存在于剩余数组中,从而找到两个数的下标。此算法避免了相同元素的重复利用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题外话:开始刷LeetCode的题,以提高一下下编程能力,in Python,今后会常用的语言。

描述:

给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。

你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。

示例:

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

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

暴力解法?涉及到list的查找方法,为了保证相同的元素不出错,例如3+3 = 6,采用list切片,在后续list中查找

1. num in list  判断list中是否存在num, 返回值 True False

2. list.index(num) 返回第一次出现num的下标,当有重复元素时,第二个返回值 采用后续list下标+当前下标

class Solution(object):
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        size = len(nums)
        res = []
        for idx in range(size):
            tmp = target - nums[idx]
            if tmp in nums[(idx+1):]:
                res = [idx,nums[(idx+1):].index(tmp)+idx+1]
                break
            else:
                idx  = idx+1
        return res

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值