반응형
문제 설명
Given an integer array nums, return true if any value appears at least twice in the array, and return false if every element is distinct.
Example 1:
Input: nums = [1,2,3,1]
Output: true
Example 2:
Input: nums = [1,2,3,4]
Output: false
Example 3:
Input: nums = [1,1,1,3,3,4,3,2,4,2]
Output: true
Constraints:
- 1 <= nums.length <= 10^5
- -10^9 <= nums[i] <= 10^9
이번 문제는 굉장히 간단했다.
해결 하는 방법이야 많겠지만 이 문제의 관건은 시간 복잡도라고 생각하여 반복을 줄이기 위해 고민을 해봤다.
이전에 HashMap 을 이용해서 풀었던 Two Sum문제가 갑자기 생각났다.
반복문을 돌리면서 배열 값을 Hash에 넣을 때 중복 체크를 하고 중복 발생되는 시점에 바로 리턴!!
class Solution {
public boolean containsDuplicate(int[] nums) {
HashMap<Integer, Integer> justSolo = new HashMap<Integer, Integer>();
int numsLength = nums.length;
for(int idx = 0; idx < numsLength; idx++){
if(!justSolo.containsKey(nums[idx])){
justSolo.put(nums[idx], idx);
}else{
return true;
}
}
return false;
}
결과는 !!!
한 번에 통과!! Nice
반응형
'ETC > Algorithm' 카테고리의 다른 글
[LeetCode] 53. Maximum Subarray (0) | 2021.12.30 |
---|---|
[LeetCode] 238. Product of Array Except Self (0) | 2021.12.14 |
[LeetCode] Add Two Numbers (못풀었다) (0) | 2021.11.30 |
[LeetCode] problem 1. Two Sum (Using HashMap) (0) | 2021.11.25 |
[LeetCode] problem 1. Two Sum (0) | 2021.11.23 |