온라인으로 읽기를 권장합니다. (국내에서는 Github 접속이 불안정한 경우가 많습니다.)
권장 Gitee 동기화
- 소개 : 이 프로젝트는 모든 사람이 우회를 피하고 단계별로 알고리즘을 배우고 저자를 따라갈 수 있도록 설계된 완전한 테스트 계획 세트입니다.
- 공식 출판 : "Code Thoughts".
- PDF 버전 : 알고리즘에 대한 "코드 랜덤 노트"의 PDF 버전입니다.
- 알고리즘 오픈클래스 : "코드랜덤녹화" 알고리즘 영상 오픈클래스입니다.
- 최강 8부작 에세이 : 지식 행성 PDF의 본질을 기록한 코드에 대한 무작위적 생각.
- 질문 답변 순서 : README에 질문 답변 순서가 정리되어 있으니 하나씩 순서대로 답변하시면 됩니다.
- 학습 커뮤니티 : 체크인/면접 스킬/제안 방법/대기업 추천/직장 규칙/이력서 수정/기술 공유/프로그램 생활 등을 함께 배워보세요. "Code Caprice" 지식 행성에 오신 것을 환영합니다.
- 코드 제출 : 이 프로젝트는 설명하기 위해 C++ 언어를 사용하지만 이미 Java, Python, Go, JavaScript 등의 다중 언어 버전이 있습니다. 아바타를 밝히는 코드도 제공하고 싶다면 여기의 모든 기여자에게 감사드립니다. , 여기에서 코드 제출 방법 알아보기를 클릭하세요.
- 재인쇄 시 참고 사항 : 다음 기사는 모두 저(프로그래머 Carl)의 원본 작품입니다. 본 프로젝트의 기사를 인용하실 경우, 악의적인 표절이나 전재를 발견하실 경우, 귀하의 권익을 보호하기 위해 법적 무기를 사용하게 될 것입니다. 좋은 기술 창작 환경을 함께 유지합시다!
LeetCode 질문 브러싱 가이드
질문 양치 가이드의 배경
이제 막 질문에 대답하기 시작한 많은 학생들은 혼란스러워합니다. Leetcode에 대한 거의 2,000개의 질문에 직면하고 어디서부터 시작해야 할까요?
모든 사람은 질문에 대한 답변의 효율성이 비효율적이라고 생각하며 주로 다음 세 가지 사항에 시간을 낭비합니다.
- 질문 찾기
- 이 단계에서 하면 안되는 질문을 찾았습니다
- 참조할 수 있는 완전한 고품질 문제 솔루션 세트는 없습니다.
사실, 나는 이전에 Zhihu에서 이 질문에 대답한 적이 있습니다. 대답은 대략 다음과 같습니다: 배열-> 연결 목록-> 해시 테이블-> 문자열-> 스택 및 대기열-> 트리-> 역추적-> 탐욕-> 동적 프로그래밍 - > 그래프 이론 -> 고급 데이터 구조, 간단한 것부터 시작하여 몇 가지 유형의 질문을 수행한 후 점차 중간 및 어려운 질문으로 이동합니다.
하지만 제 입장에서 생각해보면 이런 전체적인 계획이 있어도 초보자나 알고리즘 베테랑이라도 자신에게 맞는 주제를 찾는 것이 매우 어렵고, 주제도 그렇지 않다는 것을 느낄 수 있습니다. 필연적으로 고전적인 주제입니다.
질문에 답할 때, 우리 모두는 가장 짧은 시간을 사용하여 모든 고전적인 질문을 단계별 난이도 순서로 풀고 효율성이 가장 높기를 원합니다!
그래서 나는 Leetcode 질문을 해결하기 위한 가이드를 작성했습니다: 질문에 대답하는 매우 상세한 순서입니다. 각 질문은 모두 고전적이고 빈번한 인터뷰 질문입니다 . 이 순서를 따르기만 하면 됩니다 . README에 질문 순서를 정리하였고, 글의 순서는 질문에 답변하는 순서입니다! 하나씩 브러싱만 하면 됩니다. 질문의 바다를 헤치고 직접 주제를 선택할 필요가 없습니다!
게다가 각 질문에 대한 자세한 해결책(어려운 부분에 대한 사진과 텍스트, 동영상 포함)을 작성했으며, 해당 질문의 홈페이지에 내 솔루션이 나열되어 있습니다.
그래서 이제 알고리즘을 배우는 학생들이 더 많은 우회로를 피할 수 있도록 질문 답변 순서를 정리했습니다!
Leetcode를 브러싱 중이라면 본 가이드에 제시된 문제 해결 순서를 따라가는 것을 강력히 권장합니다. 브러싱을 마친 후에는 지식 체계 전반에 걸쳐 질적인 도약을 이룬 것을 발견할 수 있으며 굳이 찾아볼 필요도 없습니다. 질문의 바다에서의 방향.
최신 기사는 공개 계정 "Code Caprice"에 먼저 게시됩니다. 코드를 스캔하여 살펴 보면 너무 늦었다는 것을 알게 될 것입니다!
이 퀴즈 가이드를 사용하는 방법
위에서 언급한 배열 순서에 따라 배열부터 브러싱을 시작하면 됩니다.
질문 브러싱 가이드에서는 각 주제의 시작 부분에 이론 기초 장을 배치하고 있으며, 교과서 같은 이론 소개가 아닌, 실제 전투에 필요한 기본 지식을 요약하고 있습니다. 각 주제의 끝에는 주제의 가장 포괄적인 요약인 요약이 있습니다.
알고리즘 베테랑이라면 이 가이드가 최고의 복습 자료이기도 합니다. 각 시리즈의 요약을 빠르게 읽어보면 전체 알고리즘 지식 체계와 다양한 솔루션이 떠오를 것입니다.
여기에 있는 모든 솔루션은 걸작이며 신중하게 고려할 가치가 있습니다 .
나는 문제 설명에서 C++를 일률적으로 사용하지만 아래의 거의 모든 문제 설명에는 Java, Python, Go, JavaScript 등과 같은 다른 언어 버전이 포함되어 있음을 알 수 있습니다. 물론 이 열정적인 사람들이 기여한 코드입니다. , 코드 품질도 엄격하게 관리하겠습니다.
따라서 모든 사람이 참여하여 문제 해결의 다양한 언어 버전을 개선하고 오픈 소스를 수용하여 더 많은 친구에게 혜택을 줄 수 있습니다 .
준비됐나요? 퀴즈 가이드를 시작해볼까요?
머리말
"코드 카프리스" 학습 커뮤니티
프로그래밍 언어
- C++ 인터뷰 및 C++ 학습 가이드 지식 포인트 편집
- 프로그래밍 언어 기초 과정
- 23가지 디자인 패턴
도구
- 원스톱 vim 구성
- 유모 수준 Git 입문 튜토리얼, 10,000 단어의 자세한 설명
- 프로그래머는 문서를 작성하기 위해 어떤 도구를 사용해야 합니까?
일자리를 찾고 있어요
- ACM 모델 실습 웹사이트, KaMa.com
- 프로그래머의 이력서는 이렇게 작성해야 합니다! ! (이력서양식 첨부)
- [전문능력]은 이렇게 써야해요!
- [프로젝트 경험]은 이렇게 써야지!
- BAT 수준의 기술 인터뷰 프로세스 및 예방 조치는 여기에 있습니다.
알고리즘 성능 분석
- 시간 복잡도에 대해 당신이 모르는 모든 것이 여기에 있습니다!
- O(n) 알고리즘은 실제로 시간 초과됩니다. 이때 n은 얼마나 큽니까?
- 인터뷰 질문을 통해 재귀알고리즘의 시간복잡도에 대해 이야기해보겠습니다!
- 공간 복잡성과 관련하여 몇 가지 질문이 있을 수 있습니까?
- 재귀 알고리즘의 시간 및 공간 복잡도 분석!
- 많은 질문에 답한 후에 코드의 메모리 소비를 이해하셨나요?
정렬
- 배열은 너무 간단하지만 이것만은 알아야 합니다!
- 배열: 704.이진 검색
- 배열: 27. 요소 제거
- 배열: 977. 순서 배열의 제곱
- 배열: 209. 최소 길이의 하위 배열
- 배열: 범위 합계
- 배열: 개발자가 토지를 구매함
- 배열: 59. 나선형 매트릭스 II
- 배열: 요약
연결리스트
- 연결리스트에 대해 알아야 할 사항은 다음과 같습니다!
- 연결 목록: 203. 연결 목록 요소 제거
- 연결리스트: 707. 연결리스트 디자인
- 연결리스트: 206. 연결리스트 뒤집기
- 연결 목록: 24. 연결 목록의 노드를 쌍으로 교환합니다.
- 연결 리스트: 19. 연결 리스트의 맨 아래에서 N번째 노드를 삭제합니다.
- 연결 리스트: 연결 리스트가 교차합니다.
- 연결 리스트: 142. 순환 연결 리스트
- 연결 목록: 요약!
해시 테이블
- 해시 테이블에 대해 알아야 할 사항!
- 해시 테이블: 242. 유효한 철자 바꾸기
- 해시 테이블: 1002. 공통 문자 찾기
- 해시 테이블: 349. 두 배열의 교차점
- 해시 테이블: 202.행복한 숫자
- 해시 테이블: 1. 두 숫자의 합
- 해시 테이블: 454. 네 개의 숫자 추가 II
- 해시 테이블: 383. 몸값 편지
- 해시 테이블: 15. 세 숫자의 합
- 2 포인터 방법: 18. 네 숫자의 합
- 해시 테이블: 요약!
끈
- 문자열: 344. 역방향 문자열
- 문자열: 541. 역 문자열 II
- 문자열: 숫자 바꾸기
- 문자열: 151. 문자열의 단어를 뒤집습니다.
- 문자열: 오른손잡이 문자열
- KMP 알고리즘을 철저하게 배울 수 있도록 도와주세요
- 문자열: 459. 반복되는 하위 문자열
- 문자열: 요약입니다!
이중 포인터 방식
이중 포인터 방법은 기본적으로 배열, 문자열 및 연결 목록 문제에 적용됩니다.
- 배열: 27. 요소 제거
- 문자열: 344. 역방향 문자열
- 문자열: 숫자 바꾸기
- 문자열: 151. 문자열의 단어를 뒤집습니다.
- 연결리스트: 206. 연결리스트 뒤집기
- 연결 리스트: 19. 연결 리스트의 맨 아래에서 N번째 노드를 삭제합니다.
- 연결 리스트: 연결 리스트가 교차합니다.
- 연결 리스트: 142. 순환 연결 리스트
- 이중 포인터: 15. 세 숫자의 합
- 이중 포인터: 18. 네 숫자의 합
- 이중 포인터: 요약!
스택과 큐
- 스택과 큐: 이론적 기초
- 스택 및 큐: 232. 스택을 사용하여 큐 구현
- 스택 및 큐: 225. 큐를 사용하여 스택 구현
- 스택 및 큐: 20. 유효한 괄호
- 스택 및 큐: 1047. 문자열에서 인접한 모든 중복 항목을 제거합니다.
- 스택 및 큐: 150. 역 폴란드어 표현 평가
- 스택 및 큐: 239. 최대 슬라이딩 윈도우
- 스택 및 큐: 347. 상위 K개의 고주파 요소
- 스택과 큐: 요약!
이진 트리
주제 분류 개요는 다음과 같습니다.
- 이진 트리에 대해 알아야 할 사항은 다음과 같습니다!
- 이진 트리: 이진 트리의 재귀 순회
- 이진 트리: 이진 트리의 반복 순회
- 이진 트리: 이진 트리를 위한 통합 반복 방법
- 이진 트리: 이진 트리의 레벨 순서 탐색
- 이진 트리: 226. 이진 트리 뒤집기
- 이번주 요약! (이진 트리)
- 이진 트리: 101. 대칭 이진 트리
- 이진 트리: 104. 이진 트리의 최대 깊이
- 이진 트리: 111. 이진 트리의 최소 깊이
- 이진 트리: 222. 완전한 이진 트리의 노드 수
- 이진 트리: 110. 균형 잡힌 이진 트리
- 이진 트리: 257. 이진 트리의 모든 경로
- 이번주 마무리! (이진 트리)
- 이진 트리: 404. 왼쪽 잎의 합
- 이진 트리: 513. 트리의 왼쪽 하단에서 값을 찾습니다.
- 이진 트리: 112. 경로 합계
- 이진 트리: 106. 이진 트리 구축
- 이진 트리: 654. 최대 이진 트리
- 이번주 요약! (이진 트리)
- 이진 트리: 617. 두 개의 이진 트리를 병합합니다.
- 이진 트리: 700. 이진 검색 트리가 나타납니다!
- 이진 트리: 98. 이진 검색 트리 검증
- 이진 트리: 530. 검색 트리의 최소 절대 차이
- 이진 트리: 501. 이진 검색 트리의 모드
- 이진 트리: 236. 공통 조상 문제
- 이번주 요약! (이진 트리)
- 이진 트리: 235. 트리의 가장 가까운 공통 조상을 검색합니다.
- 이진 트리: 701. 검색 트리에 삽입 연산
- 이진 트리: 450. 검색 트리에서 삭제 작업
- 이진 트리: 669. 이진 검색 트리 가지치기
- 이진 트리: 108. 순서 배열을 이진 검색 트리로 변환
- 이진 트리: 538. 이진 검색 트리를 누적 트리로 변환
- 이진 트리: 요약! (마스터해야 할 모든 이진 트리 기술이 여기에 있습니다)
역추적 알고리즘
주제 분류 개요는 다음과 같습니다.
- 역추적 알고리즘에 대해 알아야 할 사항은 다음과 같습니다!
- 역추적 알고리즘: 77. 조합
- 역추적 알고리즘: 77. 조합 최적화
- 역추적 알고리즘: 216. 조합합 III
- 역추적 알고리즘: 17. 전화번호의 알파벳 조합
- 이번주 요약! (역추적 알고리즘 시리즈 1)
- 역추적 알고리즘: 39. 조합 합
- 역추적 알고리즘: 40. 조합합 II
- 역추적 알고리즘: 131. 분할 회문 문자열
- 역추적 알고리즘: 93. IP 주소 복원
- 역추적 알고리즘: 78.하위 집합
- 이번주 요약! (역추적 알고리즘 시리즈 2)
- 역추적 알고리즘: 90. 하위 집합 II
- 역추적 알고리즘: 491. 증가하는 하위 시퀀스
- 역추적 알고리즘: 46. 전체 순열
- 역추적 알고리즘: 47. 총 순열 II
- 이번주 요약! (역추적 알고리즘 시리즈 3)
- 중복을 제거하기 위해 역추적 알고리즘을 작성하는 또 다른 방법
- 역추적 알고리즘: 332. 일정 재정렬
- 역추적 알고리즘: 51.N Queen
- 역추적 알고리즘: 37. 스도쿠 풀기
- 역추적 알고리즘 요약
그리디 알고리즘
주제 분류 개요는 다음과 같습니다.
- 그리디 알고리즘에 대해 알아야 할 사항!
- 그리디 알고리즘: 455. 쿠키 배포
- 그리디 알고리즘: 376. 스윙 시퀀스
- 그리디 알고리즘: 53. 최대 하위 시퀀스 합
- 이번주 요약! (그리디 알고리즘 시리즈 1)
- 탐욕 알고리즘: 122. 주식을 사고 파는 가장 좋은 시기 II
- 욕심쟁이 알고리즘: 55. 점프 게임
- 탐욕 알고리즘: 45. 점프 게임 II
- 탐욕 알고리즘: 1005.K 부정 이후 최대화된 배열 합계
- 이번주 요약! (그리디 알고리즘 시리즈 2)
- 그리디 알고리즘: 134. 주유소
- 탐욕 알고리즘: 135. 사탕 배포
- 그리디 알고리즘: 860. 레모네이드 변경
- 탐욕 알고리즘: 406. 높이를 기준으로 대기열을 재구성합니다.
- 이번주 요약! (그리디 알고리즘 시리즈 3)
- 탐욕 알고리즘: 406. 높이에 따라 대기열 재구성(속편)
- 탐욕 알고리즘: 452. 최소한의 화살로 풍선을 터뜨립니다.
- 그리디 알고리즘: 435. 겹치는 간격 없음
- 그리디 알고리즘: 763. 문자 간격 나누기
- 그리디 알고리즘: 56. 병합 간격
- 이번주 요약! (그리디 알고리즘 시리즈 4)
- 그리디 알고리즘: 738. 단조롭게 증가하는 숫자
- 탐욕스러운 알고리즘: 968. 이진 트리 모니터링
- 탐욕 알고리즘: 요약! (모든 요약은 고전적이어야 합니다)
동적 프로그래밍
동적 프로그래밍이라는 주제는 이미 시작되었습니다. 설명할 시간이 없습니다. 친구 여러분, 버스에 올라 뒤처지지 마세요!
- 동적 프로그래밍에 대해 알아야 할 사항!
- 동적 프로그래밍: 509. 피보나치 수
- 동적 프로그래밍: 70. 계단 오르기
- 동적 프로그래밍: 746. 최소 비용으로 계단 오르기
- 이번주 요약! (동적계획 시리즈 1)
- 동적 프로그래밍: 62. 다양한 경로
- 동적 프로그래밍: 63. 다양한 경로 II
- 동적 프로그래밍: 343. 정수 분할
- 동적 프로그래밍: 96. 다양한 이진 검색 트리
- 이번주 요약! (동적 프로그래밍 시리즈 2)
배낭 문제 시리즈:
- 동적 프로그래밍: 01 Backpack 이론적 근거
- 동적 프로그래밍: 01 배낭 이론 기반(롤링 배열)
- 동적 프로그래밍: 416. 균등합 부분 집합 분할하기
- 동적 프로그래밍: 1049. 마지막 돌의 무게 II
- 이번주 요약! (동적 계획 시리즈 3)
- 동적 프로그래밍: 494. 목표 및
- 동적 프로그래밍: 474. 1과 0
- 동적 프로그래밍: 완전한 Backpack 요약
- 동적 프로그래밍: 518. 교환 교환 II 변경
- 이번주 요약! (동적 프로그래밍 시리즈 4)
- 동적 계획법: 377. 조합 합 IV
- 동적 프로그래밍: 70. 계단 오르기(풀 백패킹 버전)
- 동적 프로그래밍: 322. 변경 교환
- 동적 프로그래밍: 279. 완전제곱수
- 이번주 요약! (동적 프로그래밍 시리즈 5)
- 동적 프로그래밍: 139. 단어 분할
- 동적 프로그래밍: 다중 배낭의 이론적 기초
- 배낭 문제 요약
강도 시리즈:
- 동적 프로그래밍: 198. 강도
- 동적 프로그래밍: 213. 강도 II
- 동적 프로그래밍: 337. 강도 III
재고 시리즈:
- 동적 프로그래밍: 121. 주식을 사고 파는 가장 좋은 시기
- 동적 프로그래밍: 이번 주 요약(시리즈 6)
- 동적 프로그래밍: 122. 주식을 사고 파는 가장 좋은 시기 II
- 동적 프로그래밍: 123. 주식을 사고 파는 가장 좋은 시기 III
- 동적 프로그래밍: 188. 주식을 사고 파는 가장 좋은 시기 IV
- 동적 프로그래밍: 309. 주식을 사고 파는 가장 좋은 시기는 동결 기간을 포함합니다
- 동적 프로그래밍: 이번 주 요약(시리즈 7)
- 동적 프로그래밍: 714. 취급 수수료를 포함하여 주식을 사고 팔기에 가장 좋은 시기
- 동적 프로그래밍: 주식 시리즈 요약
후속 시리즈:
- 동적 계획법: 300. 가장 긴 증가 부분 수열
- 동적 계획법: 674. 가장 긴 연속 증가 수열
- 동적 프로그래밍: 718. 가장 긴 반복 하위 배열
- 동적 계획법: 1143. 가장 긴 공통 부분 수열
- 동적 프로그래밍: 1035. 분리된 라인
- 동적 계획법: 53. 최대 부분 수열 합
- 동적 프로그래밍: 392. 하위 시퀀스 결정
- 동적 프로그래밍: 115. 다양한 하위 수열
- 동적 프로그래밍: 583. 두 문자열 삭제 작업
- 동적 프로그래밍: 72. 거리 편집
- 거리 요약 수정
- 동적 프로그래밍: 647. 회문 하위 문자열
- 동적 계획법: 516. 가장 긴 회문 부분 수열
- 동적 프로그래밍 요약
단조로운 스택
- 모노톤 스택: 739. 일일 기온
- 모노톤 스택: 496. 다음으로 큰 요소 I
- 모노톤 스택: 503. 다음으로 큰 요소 II
- 모노톤 스택: 42. 빗물 잡기
- 단조 스택: 84. 히스토그램에서 가장 큰 직사각형
그래프 이론
그래프 이론 공식 발표
- 그래프 이론: 이론적 기초
- 그래프 이론: 깊이 우선 탐색의 이론적 기초
- 그래프 이론: 도달 가능한 모든 경로
- 그래프 이론: 너비 우선 탐색의 이론적 기초
- 그래프 이론: 섬 개수 버전.
- 그래프 이론: 섬의 수 버전.
- 그래프 이론: 섬의 최대 면적
- 그래프 이론: 섬의 전체 면적
- 그래프 이론: 가라앉은 섬
- 그래프 이론: 물 흐름 문제
- 그래프 이론: 가장 큰 섬 만들기
- 그래프 이론: 스트링 솔리테어
- 그래프 이론: 유향 그래프의 완전한 도달 가능성
- 그래프 이론: 섬의 둘레
- 그래프 이론: 합집합 탐색 이론의 기초
- 그래프 이론: 존재로 가는 길 찾기
- 그래프 이론: 중복 연결
- 그래프 이론: 중복 연결 II
- 그래프 이론: 최소 신장 트리의 프림
- 그래프 이론: 최소 스패닝 트리의 크루스칼
- 그래프 이론: 위상 정렬
- 그래프 이론: dijkstra(순진한 버전)
- 그래프 이론: dijkstra(힙 최적화 버전)
- 그래프 이론: Bellman_ford 알고리즘
- 그래프 이론: Bellman_ford 대기열 최적화 알고리즘(일명 SPFA)
- 그래프 이론: Bellman_ford의 판단 음의 가중치 루프
- 그래프 이론: Bellman_ford의 단일 소스 유한 최단 경로
- 그래프 이론: 플로이드의 알고리즘
- 그래프 이론: A* 알고리즘
- 그래프 이론: 최단 경로 알고리즘 요약
- 그래프 이론: 그래프 이론 요약
(지속적으로 업데이트중...)
상위 10위 순위
정수론
고급 데이터 구조의 고전적인 질문
- 그리고 컬렉션을 검색해 보세요.
- 최소 스패닝 트리
- 세그먼트 트리
- 트리 배열
- 사전 트리
대규모 데이터 처리
보충 질문
위의 질문은 최우선 과제이므로 완전히 이해하려면 적어도 두 번 공부해야 합니다. 위의 질문에 능숙하고 여전히 연습할 다른 질문을 찾고 있다면 다음 질문을 다시 공부할 수 있습니다.
이런 질문들은 매우 좋은데, 그 중 일부는 질문 브러싱 가이드와 유사하고, 일부 문제 해결은 추후 보완될 예정이어서 질문 브러싱 가이드에는 포함시키지 않았습니다. 앞으로는 일부 문제 해결 방법을 개선한 다음 이를 문제 해결 전략에 통합하겠습니다.
정렬
- 1365.현재 숫자보다 작은 숫자는 몇 개나 있나요?
- 941. 유효한 산 배열(이중 포인터)
- 1207. 해싱에서 고유한 발생 배열의 고전적 적용
- 283. 영점 이동 [배열] [이중 포인터]
- 189. 배열 회전
- 724.배열의 중심 인덱스 찾기
- 34. 정렬된 배열에서 요소의 첫 번째 위치와 마지막 위치 찾기(이분법)
- 922. 홀짝수로 배열 정렬 II
- 35.삽입 위치 검색
연결리스트
- 24. 연결된 목록의 노드를 쌍으로 교환합니다.
- 234. 회문 연결리스트
- 143. 연결리스트 재배열 [배열] [양방향 큐] [연결리스트 직접 조작]
- 141. 순환 연결 리스트
- 160. 교차된 연결 리스트
해시 테이블
- 205. 동형 문자열: [해시 테이블의 응용]
끈
- 925. 길게 눌러 매칭 시뮬레이션
- 0844. 백스페이스가 포함된 문자열 비교 [스택 시뮬레이션] [더 나은 공간을 가진 이중 포인터]
이진 트리
- 129. 루트에서 리프 노드까지 숫자의 합을 구합니다.
- 1382. 이진 검색 트리를 균형있게 변환하고 균형 잡힌 이진 검색 트리를 구축한다.
- 100. 같은 트리는 101. 대칭 이진 트리와 같은 아이디어를 가지고 있습니다.
- 116. 각 노드의 다음 오른쪽 노드 포인터 채우기
역추적 알고리즘
탐욕스러운
- 649.Dota2 상원은 어렵다
- 1221. 균형 잡힌 문자를 나누는 것은 간단하고 탐욕적입니다.
동적 프로그래밍
- 5. 가장 긴 회문 부분 문자열은 647. 회문 부분 문자열과 거의 동일합니다.
- 132. 분할 회문 문자열 II는 647과 매우 유사합니다. 회문 하위 문자열 및 5. 가장 긴 회문 하위 문자열
- 673.가장 긴 증가 부분 수열의 수
그래프 이론
- 463.섬의 둘레(시뮬레이션)
- 841. 열쇠와 방 [방향 그래프] dfs, bfs 사용 가능
- 127.워드 솔리테어 광수
그리고 컬렉션을 검색해 보세요.
- 684.중복접속 [통합검색 기본질문]
- 685. 중복 연결 II [Union Lookup 적용]
시뮬레이션
- 657.로봇이 원점으로 돌아갈 수 있나요?
- 31.다음 배열
비트 연산
- 1356. 디지털 이진법에서 1의 개수에 따라 정렬
알고리즘 템플릿
다양한 기본 알고리즘 템플릿
기부자
LeetCode-Master의 모든 기여자를 보려면 여기를 클릭하세요. 더 많은 독자들이 이 프로젝트의 혜택을 누릴 수 있도록 LeetCode-Master의 다른 언어 버전을 보완해 주신 분들께 감사드립니다.
스타 트렌드
저자 소개
안녕하세요 여러분, 저는 하얼빈 공과대학 선임 연구원이자 "Code Captions"의 저자인 프로그래머 Carl입니다. 저는 Tencent와 Baidu에서 기본 백엔드 기술의 연구 및 개발에 참여해 왔습니다.
PDF 다운로드
다음 기업 WeChat 계정을 추가하면 PDF 버전이 모든 사람에게 자동으로 전송됩니다. 질문 답변 그룹에 가입할지 여부를 선택할 수도 있습니다.
WeChat을 추가할 때 메모를 작성하세요. 이미 작업 중인 경우 이름-도시-위치를 메모하세요. 학생인 경우 이름-학교-학년을 참고하세요. 주의사항: 자기소개를 하지 않으시면 합격하실 수 없습니다.