[Leetcode] 219. Contains Duplicate II

Gitakkkk·2024년 6월 30일

문제

풀이

class Solution:
    def containsNearbyDuplicate(self, nums: List[int], k: int) -> bool:
        dic = {}
        
        for i in range(len(nums)):
            print(dic)
            if nums[i] in dic: 
                if abs(i - dic[nums[i]]) <=k:
                    return True
                else :
                    dic[nums[i]] = i 
            else:
                dic[nums[i]] = i
        return False

이중 for문을 사용하여 문제를 풀었다가 TimeOut이 발생하여 새로운 방법으로 문제를 풀었다.
dictionary의 키는 nums[i], 즉 value로 설정하였고,
value는 idx로 설정하였다.

for문을 돌면서 abs 비굣값이 조건에 해당하지 않는 경우, value를 idx로 재설정하는 방식이다.

0개의 댓글