LeetCode219:Contains Duplicate II
阿新 • • 發佈:2018-11-12
Given an array of integers and an integer k, find out whether there are two distinct indices i and j in the array such that nums[i] = nums[j] and the absolute difference between i and j is at most k.
Example 1:
Input: nums = [1,2,3,1], k = 3 Output:true
Example 2:
Input: nums = [1,0,1,1], k = 1 Output: true
Example 3:
Input: nums = [1,2,3,1,2,3], k = 2 Output: false
LeetCode:連結
用雜湊表,如果再次在字典中出現並且index不大於k,就返回True,否則就重新賦值。
如果K個數之後還沒有找到重複的,就刪除字典中儲存的東西,也是一種方法。
class Solution(object): def containsNearbyDuplicate(self, nums, k): """ :type nums: List[int] :type k: int :rtype: bool """ dict = {} for i in range(len(nums)): if nums[i] in dict and i - dict[nums[i]] <= k: return True dict[nums[i]] = i return False