码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode-219-存在重复元素②

时间:2019-10-04 11:23:36      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:image   滑动窗口   mic   超时   def   img   lis   inf   png   

题目描述:

技术图片

 

 第一次提交:超时

class Solution:
    def containsNearbyDuplicate(self, nums: List[int], k: int) -> bool:
        for i in range(len(nums)-1):
            for j in range(i+1,min(i+k+1,len(nums))):           
                if nums[i] == nums[j]:return True
        return False

第二次提交:超时

class Solution:
    def containsNearbyDuplicate(self, nums: List[int], k: int) -> bool:
        if k>=len(nums):
            if len(set(nums))!=len(nums):
                return True
        else:
            for i in range(len(nums)-k):
                if len(set(nums[i:i+k+1]))!=len(nums[i:i+k+1]):return True
        return False

优化:哈希表维护滑动窗口:O(N)

class Solution:
    def containsNearbyDuplicate(self, nums: List[int], k: int) -> bool:
        windows = set()
        for i in range(len(nums)):
            if nums[i] in windows:
                return True
            windows.add(nums[i])
            if len(windows) > k:
                windows.remove(nums[i-k])
        return False

 

leetcode-219-存在重复元素②

标签:image   滑动窗口   mic   超时   def   img   lis   inf   png   

原文地址:https://www.cnblogs.com/oldby/p/11621604.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!