LeetCode OJ: 219. Contains Duplicate II 有重複數字嗎?

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

題目連結 https://leetcode.com/problems/contains-duplicate-ii/

此題比 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;
    }
}

沒有留言: