Leetcode219 存在重复元素II

2020年1月19日 0 作者 折纸

题目描述

image.png

我的解法

class Solution:
    def containsNearbyDuplicate(self, nums: List[int], k: int) -> bool:
        hashmap = {}
        for index,value in enumerate(nums):
            if value not in hashmap:
                hashmap[value] = [index]
            else:
                hashmap[value].append(index)
        temp = 0
        for item in hashmap:
            for i in range(len(hashmap[item])-1):
                if abs((hashmap[item][i+1] - hashmap[item][i])) <= k:
                    temp = 1
        if temp==0:
            return False
        return True

 

他人解法

class Solution:
    def containsNearbyDuplicate(self, nums: List[int], k: int) -> bool:
        num2ind = {}
        for ind,v in enumerate(nums):
            if v in num2ind and ind-num2ind[v]<=k:
                return True
            else:
                num2ind[v]=ind
        return False

 

Note:

  • 自己的思路确实冗余了 在存哈希表的时候就可以进行判断了