Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- implement
- two pointers
- simulation
- dynamic programming
- Binary Tree
- sorting
- geometry
- Tree
- Method
- array
- 파이썬
- hash table
- Data Structure
- Math
- Binary Search
- 코딩테스트
- 자바
- Matrix
- java
- string
- bit manipulation
- database
- 구현
- 코테
- Number Theory
- SQL
- Stack
- Counting
- greedy
- Class
Archives
- Today
- Total
코린이의 소소한 공부노트
[LeetCode/Easy] 594. Longest Harmonious Subsequence 본문
1. Input
1) int[] nums
2. Output
1) nums의 요소로 만들 수 있는 조화 부분배열의 길이 중 가장 긴 것을 반환
- 부분배열을 이루고 있는 요소들의 차가 정확히 1일 때 조화롭다고 표현한다.
3. Constraint
1) 1 <= nums.length <= 2 * 10^4
2) - 10^9 <= nums[i] <= 10^9
4. Example
Input: nums = [1,3,2,2,5,2,3,7] -> Output: 5
Input: nums = [1,1,1,1] -> Output: 0
설명:
- 가장 긴 조화 부분배열은 [3,2,2,2,3]이다.
- 모든 요소의 차가 0이기 때문에 조화 부분배열을 만들 수 없다.
5. Code
1) 첫 코드(2023/03/07)
int answer = 0;
HashMap<Integer,Integer> m = new HashMap<Integer,Integer>();
for(int i : nums)
m.put(i, m.getOrDefault(i,0)+1);
Iterator it = m.entrySet().iterator();
while(it.hasNext()){
Map.Entry e = (Map.Entry)it.next();
int n = (int)e.getKey();
int a = m.getOrDefault(n-1,0), b = a = m.getOrDefault(n+1,0);
if(a!=0 && b!=0)
answer = Math.max(answer, Math.max(a,b)+(int)e.getValue());
}
return answer;
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[백준 온라인 저지] 11654. 아스키 코드 (0) | 2023.03.07 |
---|---|
[LeetCode/Easy] 599. Minimum Index Sum of Two Lists (0) | 2023.03.07 |
[백준 온라인 저지] 2839. 설탕 배달 (0) | 2023.03.07 |
[백준 온라인 저지] 1193. 분수찾기 (0) | 2023.03.07 |
[백준 온라인 저지] 2292. 벌집 (0) | 2023.03.07 |