此題比 LeetCode OJ: 217. Contains Duplicate 有重複數字嗎?難一點點,不過依然用 Java 的 HashMap 來計數:
public class Solution {
public boolean containsNearbyDuplicate(int[] nums, int k) { HashMap<Integer, Integer> numbers = new HashMap<>(); for(int idx = 0; idx < nums.length; idx++) { if( numbers.containsKey(nums[idx]) == false ) { numbers.put(nums[idx], idx); } else { int preIdx = (int)numbers.get(nums[idx]); if(idx - preIdx <= k) return true; numbers.put(nums[idx], idx); } } return false; } }
沒有留言:
張貼留言