반응형
Notice
Recent Posts
Recent Comments
- Today
- Total
작심삼일
[LeetCode] 219 | Contains Duplicate II | Python 본문
728x90
반응형
문제 링크: https://leetcode.com/problems/contains-duplicate-ii/
문제
Given an integer array nums and an integer k, return true if there are two distinct indices i and j in the array such that nums[i] == nums[j] and abs(i - j) <= k.
조건
- 1 <= nums.length <= $10^5$
- $-10^9$ <= nums[i] <= $10^9$
- 0 <= k <= $10^5$
내 풀이
(num, idx)로 구성된 dictionary를 이용할 것이다.
nums를 앞에서부터 훑으며 Dictionary에 num이 없다면 (num, 현재 index)를 추가한다.
Dictionary에 num이 있다면 (num, idx)의 idx와 현재 index 사이의 거리가 k 이하라면 True를 리턴한다.
코드
class Solution:
def containsNearbyDuplicate(self, nums: List[int], k: int) -> bool:
index = {}
for idx, num in enumerate(nums):
if num not in index:
index[num] = idx
else:
if abs(idx - index[num]) <= k:
return True
index[num] = idx
return False
728x90
반응형
'스터디 > 코테' 카테고리의 다른 글
[LeetCode] 1662 | Check If Two String Arrays are Equi (0) | 2022.10.25 |
---|---|
[LeetCode] 1239 | Maximum Length of a Concatenated String with Unique Characters | Python (0) | 2022.10.24 |
[LeetCode] 12 | Integer to Roman | Python (0) | 2022.10.20 |
[LeetCOde] 692 | Top K Frequent Words | Python (0) | 2022.10.19 |
[LeetCode] 38 | Count and Say | Python (0) | 2022.10.18 |
Comments