python leetcode刷题归纳

语言:python
多想多做,坚持!!!你会越来越棒的!!!
1 Two Sum
167 Two Sum II - Input array is sorted
217 Contains Duplicate
219 Contains Duplicate II
这四道题目思路类似,均可以通过在遍历列表的时候使用enumerate函数将list变为dict来解,其中key为列表元素,value为对应元素的索引值
solution1

class Solution:
    def twoSum(self, nums, target): 
        # hhsolution:
        tmpdict = {}
        for i,nums in enumerate(nums):
            if (target-nums) in tmpdict:
                return [tmpdict[target-nums],i]
            tmpdict[nums] = i

solution167

class Solution:
    def twoSum(self, numbers: List[int], target: int) -> List[int]:
        # hhsolution:
        record = {}
        for i,num in enumerate(numbers):
            if (target-num) in record:
                return [record[target-num]+1,i+1]
            record[num] = i    

solution217

class Solution(object):
    def containsDuplicate(self, nums):
        """
        :type nums: List[int]
        :rtype: bool
        """
		# hhsolution:
        record = {}
        for i,nums in enumerate(nums):
            if nums in record:
                return True
            record[nums] = i
        return False

solution 219

class Solution(object):
    def containsNearbyDuplicate(self, nums, k):
        """
        :type nums: List[int]
        :type k: int
        :rtype: bool
        """
        # hhsolution:
        record = {}
        for i,num in enumerate(nums):
            if num in record and i-record[num]<=k:
                return True
            record[num] = i
        return False
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值