문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
정수 배열 nums와 정수 k가 주어졌을 때, 배열에 두 개의 서로 다른 인덱스 i와 j가 있고 nums[i] == nums[j]이고 abs(i - j) <= k인 경우 true를 반환해라.
#1
Input: nums = [1, 2, 3, 1], k = 3
Output: true
#2
Input: nums = [1, 0, 1, 1], k = 1
Output: true
#3
Input: nums = [1, 2, 3, 1, 2, 3], k = 2
Output: false
class Solution {
public boolean containsNearbyDuplicate(int[] nums, int k) {
Map<Integer, Integer> temp = new HashMap<>();
for(int i = 0; i < nums.length; i++){
int val = nums[i];
if(temp.containsKey(val) && i - temp.get(val) <= k){
return true;
}
temp.put(val, i);
}
return false;
}
}