leetcode219-- Contains Duplicate-2

leetcode219-- Contains Duplicate-2

题目

意思是判断一个数组中是否有重复的元素,并且要判断它们的坐标之间的距离是否有小于k的,如果有的话就返回true,否则的话就返回false

解答

想法是建立一个字典,在建立字典的同时,判断之前有没有重复的,有的话就算距离,如果没有k大就返回true,否则的话就更新字典的值,因为前面的坐标太大了。


class Solution(object):
    def containsNearbyDuplicate(self, nums, k):
        """
        :type nums: List[int]
        :type k: int
        :rtype: bool
        """
        dic = {}
        for i, v in enumerate(nums):
            if v in dic and (i-dic[v])<=k:
                return True
            # 如果上面的没有走的话,要么没在,要么在,但是距离比k大,这时候可以更新值,因为后面再有重复的话,需要比较较近的,所以无论哪种情况都可以更新。
            dic[v] = i
        return False

打赏,谢谢~~

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,多谢支持~

打开微信扫一扫,即可进行扫码打赏哦