Contains Duplicate III

Problem: Contains Duplicate III

Actually I use hash table to solve it. Here's a better solution using bucket sort.

Code in Python:

class Solution(object):
    def containsNearbyAlmostDuplicate(self, nums, k, t):
        """
        :type nums: List[int]
        :type k: int
        :type t: int
        :rtype: bool
        """
        if t < 0:
            return False
        dict = {}
        t += 1
        for i in xrange(len(nums)):
            if i > k:
                del dict[nums[i-k-1]/t]
            m = nums[i]/t
            if m in dict:
                return True
            if m-1 in dict and abs(nums[i]-dict[m-1])<t:
                return True
            if m+1 in dict and abs(nums[i]-dict[m+1])<t:
                return True
            dict[m] = nums[i]
        return False

results matching ""

    No results matching ""