린트코드
현재(2016-08-22)까지 LintCode Online Judge에는 289
문제가 있습니다. 최근 문제가 늘어나고 있습니다. 전체 289
개 문제의 분류는 다음과 같습니다. 더 많은 문제와 솔루션을 보려면 내 LeetCode-Solutions 저장소를 참조하세요. 전체 요약과 더 나은 솔루션을 위해 계속 업데이트하겠습니다. 업데이트를 계속 지켜봐 주시기 바랍니다.
알고리즘
- 비트 조작
- 정렬
- 끈
- 연결리스트
- 수학
- 나무
- 스택
- 대기줄
- 더미
- 해시 테이블
- 데이터 구조
- 종류
- 재귀
- 이진 검색
- 너비 우선 검색
- 깊이 우선 검색
- 역추적
- 이진 검색 트리
- 동적 프로그래밍
- 탐욕스러운
- OO디자인
- 시스템 설계
비트 조작
# | 제목 | 해결책 | 시간 | 공간 | 어려움 | 꼬리표 | 메모 |
---|
1 | A + B 문제 | C++ | 오(1) | 오(1) | 중간 | | |
82 | 단일 숫자 | C++ | 에) | 오(1) | 쉬운 | Leet코드 | |
83 | 단일 번호 II | C++ | 에) | 오(1) | 쉬운 | Leet코드 | |
84 | 단일 번호 III | C++ | 에) | 오(1) | 중간 | CTCI | |
142 | O(1) 2의 거듭제곱을 확인합니다. | C++ | 오(1) | 오(1) | 쉬운 | | |
179 | 업데이트 비트 | C++ | 오(1) | 오(1) | 중간 | CTCI | |
181 | 플립 비트 | C++ | 오(1) | 오(1) | 쉬운 | CTCI | |
196 | 누락된 숫자 찾기 | C++ | 에) | 오(1) | 중간 | | |
365 | 이진수로 1을 센다 | C++ | 오(1) | 오(1) | 쉬운 | CTCI | |
정렬
# | 제목 | 해결책 | 시간 | 공간 | 어려움 | 꼬리표 | 메모 |
---|
6 | 정렬된 배열 병합 | C++ | O(m + n) | 오(1) | 쉬운 | Leet코드 | 두 개의 포인터 |
8 | 문자열 회전 | C++ | 에) | 오(1) | 쉬운 | Leet코드 | |
9 | 피즈 버즈 | C++ | 에) | 오(1) | 쉬운 | | |
30 | 삽입 간격 | C++ | 에) | 오(1) | 쉬운 | Leet코드, EPI | |
31 | 파티션 어레이 | C++ | 에) | 오(1) | 중간 | | 두 개의 포인터 |
32 | 최소 창 하위 문자열 | C++ | 에) | 오(1) | 중간 | Leet코드 | |
38 | 2D 매트릭스 II 검색 | C++ | O(m + n) | 오(1) | 중간 | 에피 | |
39 | 회전 정렬된 배열 복구 | C++ | 에) | 오(1) | 쉬운 | | |
46 | 다수수 | C++ | 에) | 오(1) | 쉬운 | Leet코드 | |
47 | 다수수 II | C++ | 에) | 오(1) | 중간 | 에피 | |
48 | 다수수 III | C++ | 에) | 좋아요) | 중간 | 에피 | |
49 | 대소문자별로 문자 정렬 | C++ | 에) | 오(1) | 중간 | | 두 개의 포인터 |
50 | 배열 자체 제외의 결과 | C++ | 에) | 오(1) | 쉬운 | | |
51 | 이전 순열 | C++ | 에) | 오(1) | 중간 | | |
52 | 다음 순열 | C++ | 에) | 오(1) | 중간 | Leet코드 | |
57 | 3 합 | C++ | 오(n^2) | 오(1) | 중간 | Leet코드 | 두 포인터, 정렬 |
58 | 4 합계 | C++ | 오(n^3) | 오(1) | 중간 | Leet코드 | 해시시 |
59 | 3 가장 가까운 합계 | C++ | 오(n^2) | 오(1) | 중간 | Leet코드 | 두 포인터, 정렬 |
64 | 정렬된 배열 병합 II | C++ | O(m + n) | 오(1) | 쉬운 | Leet코드 | 두 개의 포인터 |
100 | 정렬된 배열에서 중복 제거 | C++ | 에) | 오(1) | 쉬운 | Leet코드 | 두 개의 포인터 |
101 | 정렬된 배열 II에서 중복 제거 | C++ | 에) | 오(1) | 쉬운 | Leet코드 | 두 개의 포인터 |
133 | 가장 긴 단어 | C++ | 에) | 에) | 쉬운 | | |
144 | 양수와 음수 인터리빙 | C++ | 에) | 오(1) | 중간 | | 두 개의 포인터 |
161 | 이미지 회전 | C++ | 오(n^2) | 오(1) | 중간 | Leet코드 | |
162 | 매트릭스 0 설정 | C++ | 오(m*n) | 오(1) | 중간 | Leet코드 | |
172 | 요소 제거 | C++ | 에) | 오(1) | 쉬운 | Leet코드 | 두 개의 포인터 |
185 | 매트릭스 지그재그 순회 | C++ | 오(m*n) | 오(1) | 쉬운 | | |
189 | 첫 번째 누락 양성 | C++ | 에) | 오(1) | 쉬운 | Leet코드, EPI | 해시시 |
190 | 다음 순열 II | C++ | 에) | 오(1) | 중간 | Leet코드 | |
200 | 가장 긴 회문 부분 문자열 | C++ | 에) | 에) | 중간 | Leet코드 | Manacher's Algorithm |
363 | 빗물 가두기 | C++ | 에) | 오(1) | 중간 | Leet코드 | 두 개의 포인터, 까다로운 |
373 | 홀수와 짝수의 파티션 배열 | C++ | 에) | 오(1) | 쉬운 | | 두 개의 포인터 |
374 | 나선형 매트릭스 | C++ | 오(m*n) | 오(1) | 중간 | Leet코드 | |
381 | 나선형 매트릭스 II | C++ | 오(n^2) | 오(1) | 중간 | Leet코드 | |
382 | 삼각형 개수 | C++ | 오(n^2) | 오(1) | 중간 | | 두 개의 포인터 |
383 | 물이 가장 많은 용기 | C++ | 에) | 오(1) | 중간 | Leet코드, EPI | 두 개의 포인터 |
388 | 순열 순서 | C++ | 오(n^2) | 에) | 중간 | Leet코드 | |
389 | 유효한 스도쿠 | C++ | 오(9^2) | 오(9) | 쉬운 | Leet코드 | |
404 | 하위 배열 합계 II | C++ | O(로그인) | 에) | 딱딱한 | | 두 개의 포인터, 이진 검색 |
405 | 부분행렬 합 | C++ | O(m * n^2) | 오(m) | 딱딱한 | | 해시시 |
406 | 최소 크기 하위 배열 합계 | C++ | 에) | 오(1) | 중간 | Leet코드 | 두 개의 포인터, 이진 검색 |
539 | 0 이동 | C++ | 에) | 오(1) | 쉬운 | Leet코드 | 두 개의 포인터 |
끈
# | 제목 | 해결책 | 시간 | 공간 | 어려움 | 꼬리표 | 메모 |
---|
13 | strStr | C++ | O(n + k) | 좋아요) | 쉬운 | Leet코드 | KMP Algorithm |
53 | 문자열의 단어 반전 | C++ | 에) | 오(1) | 쉬운 | Leet코드, EPI | |
54 | 문자열을 정수로(atoi) | C++ | 에) | 오(1) | 딱딱한 | Leet코드 | |
55 | 문자열 비교 | C++ | 에) | 오(c) | 쉬운 | | |
78 | 가장 긴 공통 접두사 | C++ | 에) | 오(1) | 중간 | | |
157 | 독특한 캐릭터 | C++ | 에) | 오(1) | 쉬운 | CTCI | |
158 | 두 문자열은 아나그램입니다 | C++ | 에) | 오(1) | 쉬운 | | |
171 | 철자 바꾸기 | C++ | O(n * klogk) | 오(m) | 쉬운 | Leet코드, EPI | |
212 | 공간 교체 | C++ | 에) | 오(1) | 쉬운 | | |
407 | 플러스원 | C++ | 에) | 오(1) | 쉬운 | Leet코드 | |
408 | 바이너리 추가 | C++ | 에) | 오(1) | 쉬운 | Leet코드 | |
415 | 유효한 회문 | C++ | 에) | 오(1) | 쉬운 | Leet코드 | |
417 | 유효한 번호 | C++ | 에) | 오(1) | 딱딱한 | Leet코드 | 오토마타 |
420 | 세고 말하다 | C++ | O(n * 2^n) | 오(2^n) | 쉬운 | Leet코드 | |
422 | 마지막 단어의 길이 | C++ | 에) | 오(1) | 쉬운 | Leet코드 | |
524 | 왼쪽 패드 | C++ | O(p + n) | 오(1) | 쉬운 | Leet코드 | |
연결리스트
# | 제목 | 해결책 | 시간 | 공간 | 어려움 | 꼬리표 | 메모 |
---|
16 | 두 개의 정렬된 목록 병합 | C++ | 에) | 오(1) | 쉬운 | Leet코드, EPI | |
35 | 역방향 연결리스트 | C++ | 에) | 오(1) | 쉬운 | Leet코드, EPI | |
36 | 역방향 연결리스트 II | C++ | 에) | 오(1) | 중간 | Leet코드, EPI | |
96 | 파티션 목록 | C++ | 에) | 오(1) | 쉬운 | Leet코드 | |
98 | 목록 정렬 | C++ | O(로그인) | 오(로그인) | 중간 | Leet코드, EPI | |
99 | 목록 재정렬 | C++ | 에) | 오(1) | 중간 | Leet코드 | |
102 | 연결리스트 사이클 | C++ | 에) | 오(1) | 중간 | Leet코드 | |
103 | 연결리스트 사이클 II | C++ | 에) | 오(1) | 딱딱한 | Leet코드 | |
104 | k개의 정렬된 목록 병합 | C++ | O(n * 로그k) | 오(1) | 중간 | Leet코드 | 쌓고, 나누고, 정복하라 |
105 | 무작위 포인터로 목록 복사 | C++ | 에) | 오(1) | 중간 | Leet코드 | |
106 | 정렬된 목록을 이진 검색 트리로 변환 | C++ | 에) | 오(로그인) | 중간 | Leet코드, EPI | |
112 | 정렬된 목록에서 중복 제거 | C++ | 에) | 오(1) | 쉬운 | Leet코드, EPI | |
113 | 정렬된 목록 II에서 중복 제거 | C++ | 에) | 오(1) | 중간 | Leet코드, EPI | |
166 | 목록의 마지막 노드에서 N번째 | C++ | 에) | 오(1) | 쉬운 | Leet코드 | |
167 | 두 개의 목록 합계 | C++ | 에) | 오(1) | 쉬운 | Leet코드 | |
170 | 목록 회전 | C++ | 에) | 오(1) | 중간 | Leet코드 | |
173 | 삽입 정렬 목록 | C++ | 오(n^2) | 오(1) | 쉬운 | Leet코드 | |
174 | 목록 끝에서 N번째 노드 제거 | C++ | 에) | 오(1) | 쉬운 | Leet코드 | |
223 | 회문 연결리스트 | C++ | 에) | 오(1) | 중간 | Leet코드 | |
372 | 단일 연결 목록 중간에 있는 노드 삭제 | C++ | 오(1) | 오(1) | 쉬운 | CTCI | |
380 | 두 연결리스트의 교차점 | C++ | O(m + n) | 오(1) | 쉬운 | Leet코드 | |
450 | k-그룹의 역방향 노드 | C++ | 에) | 오(1) | 딱딱한 | Leet코드 | |
451 | 쌍으로 노드 교환 | C++ | 에) | 오(1) | 쉬운 | Leet코드 | |
452 | 연결 목록 요소 제거 | C++ | 에) | 오(1) | 순진한 | Leet코드 | |
511 | 연결리스트의 두 노드 교환 | C++ | 에) | 오(1) | 중간 | | |
나무
# | 제목 | 해결책 | 시간 | 공간 | 어려움 | 꼬리표 | 메모 |
---|
7 | 이진 트리 직렬화 | C++ | 에) | 오) | 중간 | | |
85 | 이진 검색 트리에 노드 삽입 | C++ | 오) | 오(1) | 쉬운 | | |
88 | 가장 낮은 공통 조상 | C++ | 에) | 오) | 중간 | 에피 | |
175 | 이진 트리 반전 | C++ | 에) | 오) | 쉬운 | Leet코드 | |
442 | 트라이 구현 | C++ | 에) | 오(1) | 중간 | Leet코드 | 트라이 |
스택
# | 제목 | 해결책 | 시간 | 공간 | 어려움 | 꼬리표 | 메모 |
---|
12 | 최소 스택 | C++ | 에) | 오(1) | 중간 | Leet코드, EPI | |
40 | 두 개의 스택으로 대기열 구현 | C++ | O(1), 상각 | 에) | 중간 | 에피 | |
66 | 이진 트리 선주문 순회 | C++ | 에) | 오(1) | 쉬운 | Leet코드, EPI | Morris Traversal |
67 | 이진 트리 중위순회 | C++ | 에) | 오(1) | 쉬운 | Leet코드, EPI | Morris Traversal |
68 | 이진 트리 후위 순회 | C++ | 에) | 오(1) | 쉬운 | Leet코드, EPI | Morris Traversal |
122 | 히스토그램에서 가장 큰 직사각형 | C++ | 에) | 에) | 딱딱한 | Leet코드, EPI | 오름차순 스택 |
126 | 맥스 트리 | C++ | 에) | 에) | 딱딱한 | | 내림차순 스택 |
367 | 표현식 트리 구축 | C++ | 에) | 에) | 딱딱한 | | |
368 | 발현 평가 | C++ | 에) | 에) | 딱딱한 | | |
369 | 표현식을 폴란드어 표기법으로 변환 | C++ | 에) | 에) | 딱딱한 | | |
370 | 표현식을 역폴란드 표기법으로 변환 | C++ | 에) | 에) | 딱딱한 | | |
421 | 경로 단순화 | C++ | 에) | 에) | 중간 | Leet코드 | |
423 | 유효한 괄호 | C++ | 에) | 에) | 쉬운 | Leet코드 | |
424 | 역폴란드 표기법 평가 | C++ | 에) | 에) | 중간 | Leet코드 | |
473 | 단어 추가 및 검색 | C++ | O(최소(n, h)) | O(분(n, h) | 중간 | Leet코드 | 트라이 |
510 | 최대 직사각형 | C++ | 오(m*n) | 에) | 딱딱한 | Leet코드 | 오름차순 스택 |
528 | 중첩된 목록 반복자 평면화 | C++ | 에) | 오) | 중간 | Leet코드 | |
대기줄
# | 제목 | 해결책 | 시간 | 공간 | 어려움 | 꼬리표 | 메모 |
---|
362 | 슬라이딩 윈도우 최대 | C++ | 에) | 좋아요) | 딱딱한 | 에피 | 데크, 트리키 |
더미
# | 제목 | 해결책 | 시간 | 공간 | 어려움 | 꼬리표 | 메모 |
---|
4 | 추악한 숫자 II | C++ | 에) | 오(1) | 중간 | CTCI | BST, 힙 |
81 | 데이터 스트림 중앙값 | C++ | O(로그인) | 에) | 딱딱한 | 에피 | BST, 힙 |
130 | 힙파이 | C++ | 에) | 오(1) | 중간 | | |
364 | 빗물 가두기 II | C++ | O(m * n * (logm + logn)) | 오(m*n) | 딱딱한 | | BFS, 힙, 까다로운 |
518 | 정말 못생긴 숫자 | C++ | 오(n*k) | O(n + k) | 중간 | Leet코드 | BST, 힙 |
해시 테이블
# | 제목 | 해결책 | 시간 | 공간 | 어려움 | 꼬리표 | 메모 |
---|
56 | 2 합 | C++ | 에) | 에) | 중간 | Leet코드 | |
124 | 가장 긴 연속 시퀀스 | C++ | 에) | 에) | 중간 | Leet코드, EPI | |
128 | 해시 함수 | C++ | 에) | 오(1) | 쉬운 | | |
129 | 재해싱 | C++ | 에) | 에) | 중간 | | |
138 | 하위 배열 합계 | C++ | 에) | 에) | 쉬운 | | |
186 | 라인의 최대 포인트 | C++ | 오(n^2) | 에) | 중간 | Leet코드 | |
211 | 문자열 순열 | C++ | 에) | 오(1) | 쉬운 | | |
384 | 반복되는 문자가 없는 가장 긴 부분 문자열 | C++ | 에) | 오(1) | 중간 | Leet코드, EPI | |
386 | 최대 K개의 고유 문자를 포함하는 가장 긴 부분 문자열 | C++ | 에) | 에) | 중간 | | |
432 | 유방향 그래프에서 약한 연결 성분 찾기 | C++ | O(로그인) | 에) | 중간 | | 유니온 찾기 |
434 | 섬의 수 II | C++ | 좋아요) | 좋아요) | 딱딱한 | | 유니온 찾기 |
488 | 해피넘버 | C++ | 좋아요) | 좋아요) | 쉬운 | Leet코드 | |
547 | 두 배열의 교차점 | C++ | O(m + n) | O(최소(m, n)) | 쉬운 | EPI, LeetCode | 두 개의 포인터, 이진 검색 |
548 | 두 배열의 교차점 II | C++ | O(m + n) | O(최소(m, n)) | 쉬운 | EPI, LeetCode | 두 개의 포인터, 이진 검색 |
데이터 구조
# | 제목 | 해결책 | 시간 | 공간 | 어려움 | 꼬리표 | 메모 |
---|
134 | LRU 캐시 | C++ | 오(1) | 좋아요) | 딱딱한 | Leet코드, EPI | 목록, 해시 |
수학
# | 제목 | 해결책 | 시간 | 공간 | 어려움 | 꼬리표 | 메모 |
---|
2 | 후행 0 | C++ | 오(1) | 오(1) | 쉬운 | Leet코드 | |
3 | 자릿수 | C++ | 오(1) | 오(1) | 중간 | CTCI | |
114 | 고유한 경로 | C++ | O(최소(m, n)) | 오(1) | 쉬운 | LeetCode, CTCI | DP, 수학 |
163 | 고유한 이진 검색 트리 | C++ | 에) | 오(1) | 중간 | CTCI | DP, 수학, Catalan Number |
180 | 이진 표현 | C++ | 오(1) | 오(1) | 딱딱한 | CTCI | |
197 | 순열 지수 | C++ | 오(n^2) | 오(1) | 쉬운 | | |
198 | 순열 지수 II | C++ | 오(n^2) | 에) | 중간 | | |
394 | 한 줄에 동전 | C++ | 오(1) | 오(1) | 쉬운 | | |
411 | 그레이 코드 | C++ | O(2^n) | 오(1) | 중간 | Leet코드 | |
413 | 역방향 정수 | C++ | 오(1) | 오(1) | 중간 | Leet코드 | |
414 | 두 정수 나누기 | C++ | 오(1) | 오(1) | 중간 | Leet코드 | |
418 | 정수에서 로마자로 | C++ | 에) | 오(1) | 중간 | Leet코드 | |
419 | 로마자를 정수로 | C++ | 에) | 오(1) | 중간 | Leet코드 | |
428 | 힘(x,n) | C++ | 오(1) | 오(1) | 중간 | Leet코드 | |
445 | 코사인 유사성 | C++ 파이썬 | 에) | 오(1) | 쉬운 | | |
517 | 추악한 숫자 | C++ | 오(1) | 오(1) | 쉬운 | CTCI, LeetCode | |
종류
# | 제목 | 해결책 | 시간 | 공간 | 어려움 | 꼬리표 | 메모 |
---|
5 | K번째로 큰 요소 | C++ | O(n) ~ O(n^2) | 오(1) | 중간 | 에피 | 두 개의 포인터, 빠른 정렬 |
80 | 중앙값 | C++ | 에) | 오(1) | 쉬운 | 에피 | |
139 | 가장 가까운 하위 배열 합계 | C++ | O(로그인) | 에) | 중간 | | 종류 |
143 | 색상 정렬 II | C++ | 에) | 오(1) | 중간 | | |
148 | 색상 정렬 | C++ | 에) | 오(1) | 중간 | Leet코드 | |
156 | 병합 간격 | C++ | O(로그인) | 오(1) | 쉬운 | Leet코드, EPI | |
184 | 가장 큰 숫자 | C++ | O(로그인) | 오(1) | 중간 | Leet코드 | |
366 | 피보나치 | C++ | 에) | 오(1) | 쉬운 | | |
379 | 최소 수를 구성하도록 배열을 재정렬합니다. | C++ | O(로그인) | 오(1) | 중간 | Leet코드 | |
387 | 가장 작은 차이 | C++ | O(최대(m, n) * log(최소(m, n))) | 오(1) | 중간 | | 두 개의 포인터, 이진 검색 |
399 | 너트 및 볼트 문제 | C++ | O(로그인) | 오(로그인) | 중간 | | 빠른 정렬 |
400 | 최대 간격 | C++ 파이썬 | 에) | 에) | 딱딱한 | Leet코드 | 버킷 정렬 |
463 | 정수 정렬 | C++ | 오(n^2) | 오(1) | 쉬운 | | 삽입정렬, 선택정렬, 버블정렬 |
464 | 정수 정렬 II | C++ | O(로그인) | 에) | 쉬운 | | 병합 정렬, 힙 정렬, 퀵 정렬 |
507 | 흔들기 정렬 II | C++ | 평균 O(n) | 오(1) | 중간 | Leet코드 | 트라이 파티션 |
508 | 흔들기 정렬 | C++ | 에) | 오(1) | 중간 | Leet코드 | |
재귀
# | 제목 | 해결책 | 시간 | 공간 | 어려움 | 꼬리표 | 메모 |
---|
22 | 평면화 목록 | C++ | 에) | 오) | 쉬운 | | |
72 | 중위 순회 및 후위 순회에서 이진 트리 생성 | C++ | 에) | 에) | 중간 | Leet코드, EPI | |
73 | 선주문 및 중위 순회에서 이진 트리 구성 | C++ | 에) | 에) | 중간 | Leet코드, EPI | |
93 | 균형 잡힌 이진 트리 | C++ | 에) | 오) | 쉬운 | Leet코드 | |
94 | 이진 트리 최대 경로 합계 | C++ | 에) | 오) | 중간 | Leet코드 | |
95 | 이진 검색 트리 검증 | C++ | 에) | 오) | 중간 | Leet코드 | |
97 | 이진 트리의 최대 깊이 | C++ | 에) | 오) | 쉬운 | Leet코드 | |
131 | 건물 개요 | C++ 파이썬 | O(로그인) | 에) | 딱딱한 | 에피 | 정렬, BST |
140 | 빠른 전력 | C++ | 오(로그인) | 오(1) | 중간 | | |
155 | 이진 트리의 최소 깊이 | C++ | 에) | 오) | 쉬운 | Leet코드 | |
164 | 고유한 이진 검색 트리 II | C++ | O(n * 4^n / n^(3/2)) | 에) | 중간 | Leet코드 | |
177 | 정렬된 배열을 최소 높이의 이진 검색 트리로 변환 | C++ | 에) | 오(로그인) | 쉬운 | Leet코드 | |
201 | 세그먼트 트리 구축 | C++ | 에) | 오) | 중간 | | 세그먼트 트리, BST |
202 | 세그먼트 트리 쿼리 | C++ | 오) | 오) | 중간 | | 세그먼트 트리, BST |
203 | 세그먼트 트리 수정 | C++ | 오) | 오) | 중간 | | 세그먼트 트리, BST |
205 | 간격 최소 수 | C++ | 빌드 트리: O(n) , 쿼리: (h) | 오) | 딱딱한 | | 세그먼트 트리, BST |
206 | 간격 합계 | C++ | 빌드 트리: O(n) , 쿼리: O(logn) | 에) | 딱딱한 | | 세그먼트 트리, BIT |
207 | 간격합 II | C++ | 빌드 트리: O(n) , 쿼리: O(logn) , 수정: O(logn) | 에) | 딱딱한 | | 세그먼트 트리, BIT |
245 | 하위 트리 | C++ | 오(m*n) | 오(1) | 쉬운 | | Morris Traversal |
247 | 세그먼트 트리 쿼리 II | C++ | 오) | 오) | 딱딱한 | | 세그먼트 트리, BST |
248 | 더 작은 수의 수 | C++ | 빌드 트리: O(n) , 쿼리: O(logn) | 오) | 중간 | | 세그먼트 트리, BST |
371 | 재귀로 숫자 인쇄하기 | C++ | 에) | 에) | 중간 | | |
375 | 클론 바이너리 트리 | C++ | 에) | 오) | 쉬운 | | |
378 | 이진 검색 트리를 이중 연결 목록으로 변환 | C++ | 에) | 오) | 중간 | | |
439 | 세그먼트 트리 구축 II | C++ | 에) | 오) | 중간 | | 세그먼트 트리, BST |
453 | 이진 트리를 연결 목록으로 평면화 | C++ | 에) | 오) | 쉬운 | Leet코드 | |
469 | 동일 이진 트리 | C++ | 에) | 오) | 쉬운 | | |
532 | 역방향 쌍 | C++ | O(로그인) | 에) | 중간 | 그 자체보다 작은 수의 개수의 변형 | BIT, 병합 정렬 |
535 | 집강도 III | C++ | 에) | 오) | 중간 | Leet코드 | |
이진 검색
# | 제목 | 해결책 | 시간 | 공간 | 어려움 | 꼬리표 | 메모 |
---|
14 | 대상의 첫 번째 위치 | C++ | 오(로그인) | 오(1) | 쉬운 | | |
28 | 2D 매트릭스 검색 | C++ | O(logm + logn) | 오(1) | 쉬운 | Leet코드 | |
60 | 삽입 위치 검색 | C++ | 오(로그인) | 오(1) | 쉬운 | Leet코드 | |
61 | 범위 검색 | C++ | 오(로그인) | 오(1) | 중간 | Leet코드 | |
62 | 회전 정렬 배열에서 검색 | C++ | 오(로그인) | 오(1) | 중간 | Leet코드 | |
63 | 회전 정렬 배열에서 검색 II | C++ | 오(로그인) | 오(1) | 중간 | Leet코드 | |
65 | 두 개의 정렬된 배열의 중앙값 | C++ | O(log(최소(m, n))) | 오(1) | 딱딱한 | Leet코드, EPI | 교활한 |
74 | 첫 번째 잘못된 버전 | C++ | 오(로그인) | 오(1) | 중간 | | |
75 | 피크 요소 찾기 | C++ | 오(로그인) | 오(1) | 중간 | Leet코드 | |
76 | 가장 긴 증가 부분 수열 | C++ | O(로그인) | 에) | 중간 | CTCI | |
141 | 제곱(x) | C++ | 오(로그인) | 오(1) | 쉬운 | Leet코드 | |
159 | 회전 정렬 배열에서 최소값 찾기 | C++ | 오(로그인) | 오(1) | 중간 | Leet코드 | |
160 | 회전 정렬 배열 II에서 최소값 찾기 | C++ | 오(로그인) | 오(1) | 중간 | Leet코드 | |
183 | 우드 컷 | C++ | 오(nlogL) | 오(1) | 중간 | | |
390 | 피크 요소 II 찾기 | C++ 자바 파이썬 | O(m + n) | 오(1) | 딱딱한 | | |
437 | 도서 복사 | C++ | 오(nlogp) | 오(1) | 딱딱한 | UVA 714 | |
너비 우선 검색
# | 제목 | 해결책 | 시간 | 공간 | 어려움 | 꼬리표 | 메모 |
---|
69 | 이진 트리 수준 순서 탐색 | C++ | 에) | 에) | 중간 | Leet코드 | BFS |
70 | 이진 트리 수준 순서 순회 II | C++ | 에) | 에) | 중간 | Leet코드 | BFS |
71 | 이진 트리 지그재그 레벨 순서 순회 | C++ | 에) | 에) | 중간 | Leet코드 | BFS |
120 | 워드래더 | C++ | 오(n*d) | O(d) | 중간 | Leet코드 | BFS |
121 | 단어사다리II | C++ | 오(n*d) | O(d) | 딱딱한 | Leet코드 | BFS, 역추적 |
127 | 토폴로지 정렬 | C++ | O(|V|+|E|) | 오(|E|) | 중간 | | DFS, BFS |
137 | 그래프 복제 | C++ | O(|V|+|E|) | 오(|V|) | 중간 | | BFS |
176 | 그래프의 두 노드 간 라우팅 | C++ | 에) | 에) | 중간 | | DFS, BFS |
178 | 그래프 유효 트리 | C++ | O(|V| + |E|) | O(|V| + |E|) | 중간 | Leet코드 | |
431 | 무방향 그래프에서 연결된 구성요소 찾기 | C++ | 에) | 에) | 중간 | | BFS |
477 | 주변 지역 | C++ | 오(m*n) | O(m + n) | 중간 | Leet코드 | |
깊이 우선 검색
# | 제목 | 해결책 | 시간 | 공간 | 어려움 | 꼬리표 | 메모 |
---|
90 | K Sum II | C++ | O(k * C(n, k)) | 좋아요) | 중간 | | |
376 | 이진 트리 경로 합계 | C++ | 에) | 오) | 쉬운 | Leet코드 | |
433 | 섬 수 | C++ | 오(m*n) | 오(m*n) | 쉬운 | Leet코드 | DFS |
480 | 이진 트리 경로 | C++ | 오(n*h) | 오) | 쉬운 | Leet코드 | |
역추적
# | 제목 | 해결책 | 시간 | 공간 | 어려움 | 꼬리표 | 메모 |
---|
15 | 순열 | C++ | 오(n*n!) | 에) | 중간 | Leet코드, EPI | |
16 | 순열 II | C++ | 오(n*n!) | 에) | 중간 | Leet코드, EPI | |
17 | 하위 집합 | C++ | O(n * 2^n) | 오(1) | 중간 | Leet코드 | |
18 | 하위 집합 II | C++ | O(n * 2^n) | 오(1) | 중간 | Leet코드 | |
33 | N-퀸즈 | C++ | 오(n*n!) | 에) | 중간 | Leet코드, EPI | |
34 | N-퀸즈 II | C++ | 오(n*n!) | 에) | 중간 | Leet코드, EPI | |
123 | 단어 검색 | C++ | O(m*n*l) | 오(l) | 중간 | Leet코드 | |
132 | 단어 검색 II | C++ | O(m*n*l) | 오(l) | 딱딱한 | | 트라이, DFS |
135 | 조합합 | C++ | 오(k * n^k) | 좋아요) | 중간 | Leet코드 | DFS |
136 | 회문 파티셔닝 | C++ | 오(2^n) | 에) | 쉬운 | Leet코드, EPI | |
152 | 조합 | C++ | 오(k * n^k) | 좋아요) | 중간 | Leet코드, EPI | |
153 | 조합합 II | C++ | O(k * C(n, k)) | 좋아요) | 중간 | Leet코드 | DFS |
425 | 전화번호의 문자 조합 | C++ | O(n * 4^n) | 에) | 중간 | Leet코드 | |
426 | IP 주소 복원 | C++ | 오(1) | 오(1) | 중간 | Leet코드 | |
427 | 괄호 생성 | C++ | O(4^n / n^(3/2)) | 에) | 중간 | Leet코드 | |
이진 검색 트리
# | 제목 | 해결책 | 시간 | 공간 | 어려움 | 꼬리표 | 메모 |
---|
11 | 이진 검색 트리의 검색 범위 | C++ | 에) | 오) | 중간 | 에피 | |
86 | 이진 검색 트리 반복자 | C++ | 오(1) | 오) | 딱딱한 | Leet코드 | |
87 | 이진 검색 트리에서 노드 제거 | C++ | 오) | 오) | 딱딱한 | | |
249 | 자신보다 작은 수의 수 | C++ | O(로그인) | 에) | 딱딱한 | | BST, BIT, 분할 정복, 병합 정렬 |
360 | 슬라이딩 윈도우 중앙값 | C++ | 오(nlogw) | 오(w) | 딱딱한 | | BST, 까다롭다 |
391 | 하늘을 나는 비행기의 수 | C++ | O(로그인) | 에) | 쉬운 | | BST, 힙 |
401 | 정렬된 행렬에서 K번째로 작은 숫자 | C++ | O(klog(최소(m, n, k))) | O(최소(m, n, k)) | 중간 | | BST, 힙 |
동적 프로그래밍
# | 제목 | 해결책 | 시간 | 공간 | 어려움 | 꼬리표 | 메모 |
---|
20 | 주사위 합계 | C++ | 오(n^2) | 에) | 딱딱한 | | |
29 | 문자열 인터리브 | C++ | 오(m*n) | O(최소(m, n)) | 중간 | 에피 | |
43 | 최대 하위 배열 III | C++ | 오(k*n) | 오(k*n) | 딱딱한 | | |
77 | 가장 긴 공통 부분 수열 | C++ | 오(m*n) | O(최소(m, n)) | 중간 | | |
79 | 가장 긴 공통 부분 문자열 | C++ | 오(m*n) | O(최소(m, n)) | 중간 | | |
89 | 케이썸 | C++ | O(k * n * t) | O(n*t) | 딱딱한 | | |
91 | 최소 조정 비용 | C++ | O(k * n * t) | 좋아요) | 중간 | | |
92 | 배낭 | C++ | 오(m*n) | 오(m) | 쉬운 | | |
107 | 단어 나누기 | C++ | O(n * l^2) | 에) | 중간 | Leet코드, EPI | |
108 | 회문 분할 II | C++ | 오(n^2) | 에) | 중간 | Leet코드, EPI | |
109 | 삼각형 | C++ | 에) | 에) | 쉬운 | Leet코드, EPI | |
110 | 최소 경로 합계 | C++ | 오(m*n) | O(최소(m, n)) | 쉬운 | Leet코드, EPI | |
111 | 계단 오르기 | C++ | 오(로그인) | 오(1) | 쉬운 | Leet코드 | |
115 | 독특한 경로 II | C++ | 오(m*n) | O(최소(m, n)) | 쉬운 | LeetCode, CTCI | DP, 수학 |
118 | 별개의 하위 시퀀스 | C++ | 오(m*n) | 오(m) | 중간 | Leet코드 | DP |
119 | 거리 편집 | C++ | 오(m*n) | O(최소(m, n)) | 중간 | LeetCode, CTCI | DP |
125 | 백팩 2 | C++ | 오(m*n) | 오(m) | 중간 | | |
149 | 주식을 사고 파는 가장 좋은 시기 | C++ | 에) | 오(1) | 중간 | Leet코드, EPI | |
150 | 주식을 사고 파는 가장 좋은 시기 II | C++ | 에) | 오(1) | 중간 | Leet코드, EPI | |
151 | 주식을 사고 파는 가장 좋은 시기 III | C++ | 에) | 오(1) | 중간 | Leet코드, EPI | |
154 | 정규식 일치 | C++ | 오(m*n) | 오(m) | 딱딱한 | Leet코드 | DP, 재귀 |
168 | 버스트 풍선 | C++ | 오(n^3) | 오(n^2) | 중간 | Leet코드 | |
191 | 최대 제품 하위 배열 | C++ | 에) | 오(1) | 중간 | Leet코드 | |
392 | 집 강도 | C++ | 에) | 오(1) | 중간 | Leet코드 | |
393 | 주식을 사고 파는 가장 좋은 시기 IV | C++ | 오(k*n) | 좋아요) | 딱딱한 | Leet코드, EPI | |
395 | 라인 II의 동전 | C++ | 에) | 오(1) | 중간 | | |
396 | 라인 III의 동전 | C++ | 오(n^2) | 에) | 딱딱한 | | |
397 | 가장 긴 증가하는 연속 부분 수열 | C++ | 에) | 오(1) | 쉬운 | | |
398 | 가장 긴 증가하는 연속 부분 수열 II | C++ | 오(m*n) | 오(m*n) | 딱딱한 | | |
403 | 연속 하위 배열 합계 II | C++ | 에) | 오(1) | 중간 | 에피 | |
430 | 스크램블 스트링 | C++ | 오(n^4) | 오(n^3) | 딱딱한 | Leet코드 | |
435 | 우체국 문제 | C++ | 오(k * n^2) | 에) | 딱딱한 | PKU 1160 | |
436 | 맥시멀 스퀘어 | C++ | 오(m*n) | 에) | 중간 | Leet코드 | |
512 | 디코드 방법 | C++ | 에) | 오(1) | 중간 | Leet코드 | |
513 | 완벽한 사각형 | C++ | O(n * sqrt(n)) | 에) | 중간 | Leet코드 | |
514 | 페인트 울타리 | C++ | 에) | 오(1) | 쉬운 | Leet코드 | |
515 | 페인트 하우스 | C++ | 에) | 오(1) | 중간 | Leet코드 | |
516 | 페인트 하우스 II | C++ | 오(n*k) | 좋아요) | 딱딱한 | Leet코드 | |
534 | 하우스 강도 II | C++ | 에) | 오(1) | 중간 | Leet코드 | |
564 | 백팩 VI | C++ | O(n*t) | 오(티) | 중간 | | |
탐욕스러운
# | 제목 | 해결책 | 시간 | 공간 | 어려움 | 꼬리표 | 메모 |
---|
41 | 최대 하위 배열 | C++ | 에) | 오(1) | 쉬운 | Leet코드 | |
42 | 최대 하위 배열 II | C++ | 에) | 에) | 중간 | | |
44 | 최소 하위 배열 | C++ | 에) | 오(1) | 쉬운 | | |
45 | 최대 하위 배열 차이 | C++ | 에) | 에) | 중간 | | |
116 | 점프 게임 | C++ | 에) | 오(1) | 중간 | Leet코드 | |
117 | 점프 게임 II | C++ | 에) | 오(1) | 중간 | Leet코드 | |
182 | 숫자 삭제 | C++ | 에) | 에) | 중간 | | |
187 | 주유소 | C++ | 에) | 오(1) | 쉬운 | Leet코드 | |
192 | 와일드카드 일치 | C++ | O(m + n) | 오(1) | 딱딱한 | Leet코드 | 욕심쟁이, DP, 재귀 |
402 | 연속 하위 배열 합계 | C++ | 에) | 오(1) | 중간 | 에피 | |
412 | 사탕 | C++ | 에) | 에) | 딱딱한 | Leet코드 | 탐욕스러운 |
552 | 최대 개수 생성 | C++ | O(k * (m + n + k)) ~ O(k * (m + n + k^2)) | O(m + n + k^2) | 딱딱한 | Leet코드 | 욕심쟁이, DP |
OO디자인
# | 제목 | 해결책 | 시간 | 공간 | 어려움 | 꼬리표 | 메모 |
---|
204 | 하나씩 일어나는 것 | C++ | 오(1) | 오(1) | 쉬운 | | |
208 | 할당 연산자 오버로딩(C++에만 해당) | C++ | 에) | 오(1) | 중간 | | |
496 | 장난감 공장 | C++ | 오(1) | 오(1) | 쉬운 | | |
497 | 모양 공장 | C++ | 오(1) | 오(1) | 쉬운 | | |
498 | 주차장 | C++ | O(n*m*k) | O(n*m*k) | 딱딱한 | CTCI | OO 디자인, Pimpl Idiom, 스마트 포인터 |
시스템 설계
# | 제목 | 해결책 | 시간 | 공간 | 어려움 | 꼬리표 | 메모 |
---|
501 | 미니 트위터 | C++ | 오(클로구) | 오(t + f) | 중간 | | |