Código Lint
Até o momento (22/08/2016), existem 289 problemas no LintCode Online Judge. O número de problemas está aumentando recentemente. Aqui está a classificação de todos os 289 problemas. Para mais problemas e soluções, você pode ver meu repositório LeetCode-Solutions. Continuarei atualizando para obter um resumo completo e melhores soluções. Fique ligado nas atualizações.
Algoritmos
- Manipulação de bits
- Variedade
- Corda
- Lista vinculada
- Matemática
- Árvore
- Pilha
- Fila
- Pilha
- Tabelas hash
- Estrutura de dados
- Organizar
- Recursão
- Pesquisa binária
- Pesquisa ampla
- Pesquisa em profundidade
- Retrocesso
- Árvores de pesquisa binária
- Programação Dinâmica
- Ambicioso
- Projeto OO
- Projeto do sistema
Manipulação de bits
| # | Título | Solução | Tempo | Espaço | Dificuldade | Marcação | Observação |
|---|
| 1 | Problema A + B | C++ | O(1) | O(1) | Médio | | |
| 82 | Número único | C++ | Sobre) | O(1) | Fácil | Código Leet | |
| 83 | Número Único II | C++ | Sobre) | O(1) | Fácil | Código Leet | |
| 84 | Único Número III | C++ | Sobre) | O(1) | Médio | CTCI | |
| 142 | O(1) Verifique a potência de 2 | C++ | O(1) | O(1) | Fácil | | |
| 179 | Atualizar bits | C++ | O(1) | O(1) | Médio | CTCI | |
| 181 | Virar bits | C++ | O(1) | O(1) | Fácil | CTCI | |
| 196 | Encontre o número que falta | C++ | Sobre) | O(1) | Médio | | |
| 365 | Conte 1 em binário | C++ | O(1) | O(1) | Fácil | CTCI | |
Variedade
| # | Título | Solução | Tempo | Espaço | Dificuldade | Marcação | Observação |
|---|
| 6 | Mesclar matriz classificada | C++ | O(m + n) | O(1) | Fácil | Código Leet | Duas dicas |
| 8 | Girar corda | C++ | Sobre) | O(1) | Fácil | Código Leet | |
| 9 | Fizz Buzz | C++ | Sobre) | O(1) | Fácil | | |
| 30 | Inserir intervalo | C++ | Sobre) | O(1) | Fácil | LeetCode, EPI | |
| 31 | Matriz de partição | C++ | Sobre) | O(1) | Médio | | Duas dicas |
| 32 | Substring mínima da janela | C++ | Sobre) | O(1) | Médio | Código Leet | |
| 38 | Pesquisar uma Matriz 2D II | C++ | O(m + n) | O(1) | Médio | PES | |
| 39 | Recuperar matriz classificada girada | C++ | Sobre) | O(1) | Fácil | | |
| 46 | Número da maioria | C++ | Sobre) | O(1) | Fácil | Código Leet | |
| 47 | Maioria Número II | C++ | Sobre) | O(1) | Médio | PES | |
| 48 | Maioria Número III | C++ | Sobre) | OK) | Médio | PES | |
| 49 | Classificar letras por caso | C++ | Sobre) | O(1) | Médio | | Duas dicas |
| 50 | Produto da matriz exclui-se | C++ | Sobre) | O(1) | Fácil | | |
| 51 | Permutação Anterior | C++ | Sobre) | O(1) | Médio | | |
| 52 | Próxima Permutação | C++ | Sobre) | O(1) | Médio | Código Leet | |
| 57 | 3 Soma | C++ | O(n^2) | O(1) | Médio | Código Leet | Duas dicas, classificar |
| 58 | 4 Soma | C++ | O (n ^ 3) | O(1) | Médio | Código Leet | Hash |
| 59 | 3 Soma mais próxima | C++ | O(n^2) | O(1) | Médio | Código Leet | Duas dicas, classificar |
| 64 | Mesclar matriz classificada II | C++ | O(m + n) | O(1) | Fácil | Código Leet | Duas dicas |
| 100 | Remover duplicatas da matriz classificada | C++ | Sobre) | O(1) | Fácil | Código Leet | Duas dicas |
| 101 | Remover duplicatas do Sorted Array II | C++ | Sobre) | O(1) | Fácil | Código Leet | Duas dicas |
| 133 | Palavras mais longas | C++ | Sobre) | Sobre) | Fácil | | |
| 144 | Intercalando números positivos e negativos | C++ | Sobre) | O(1) | Médio | | Duas dicas |
| 161 | Girar imagem | C++ | O(n^2) | O(1) | Médio | Código Leet | |
| 162 | Definir zeros da matriz | C++ | O (m * n) | O(1) | Médio | Código Leet | |
| 172 | Remover elemento | C++ | Sobre) | O(1) | Fácil | Código Leet | Duas dicas |
| 185 | Travessia em ziguezague da matriz | C++ | O (m * n) | O(1) | Fácil | | |
| 189 | Primeiro positivo ausente | C++ | Sobre) | O(1) | Fácil | LeetCode, EPI | Hash |
| 190 | Próxima Permutação II | C++ | Sobre) | O(1) | Médio | Código Leet | |
| 200 | Substring palindrômica mais longa | C++ | Sobre) | Sobre) | Médio | Código Leet | Manacher's Algorithm |
| 363 | Retendo a água da chuva | C++ | Sobre) | O(1) | Médio | Código Leet | Duas dicas, complicadas |
| 373 | Matriz de partição por ímpar e par | C++ | Sobre) | O(1) | Fácil | | Duas dicas |
| 374 | Matriz Espiral | C++ | O (m * n) | O(1) | Médio | Código Leet | |
| 381 | Matriz Espiral II | C++ | O(n^2) | O(1) | Médio | Código Leet | |
| 382 | Contagem de Triângulos | C++ | O(n^2) | O(1) | Médio | | Duas dicas |
| 383 | Recipiente com mais água | C++ | Sobre) | O(1) | Médio | LeetCode, EPI | Duas dicas |
| 388 | Sequência de Permutação | C++ | O(n^2) | Sobre) | Médio | Código Leet | |
| 389 | Sudoku válido | C++ | O(9^2) | O(9) | Fácil | Código Leet | |
| 404 | Soma do Subarranjo II | C++ | O(nlogn) | Sobre) | Duro | | Dois ponteiros, pesquisa binária |
| 405 | Soma da Submatriz | C++ | O (m * n ^ 2) | O(m) | Duro | | Hash |
| 406 | Soma do submatriz de tamanho mínimo | C++ | Sobre) | O(1) | Médio | Código Leet | Dois ponteiros, pesquisa binária |
| 539 | Mover Zeros | C++ | Sobre) | O(1) | Fácil | Código Leet | Duas dicas |
Corda
| # | Título | Solução | Tempo | Espaço | Dificuldade | Marcação | Observação |
|---|
| 13 | strStr | C++ | O (n + k) | OK) | Fácil | Código Leet | KMP Algorithm |
| 53 | Palavras invertidas em uma string | C++ | Sobre) | O(1) | Fácil | LeetCode, EPI | |
| 54 | String para inteiro (atoi) | C++ | Sobre) | O(1) | Duro | Código Leet | |
| 55 | Comparar cadeias de caracteres | C++ | Sobre) | O(c) | Fácil | | |
| 78 | Prefixo comum mais longo | C++ | Sobre) | O(1) | Médio | | |
| 157 | Personagens únicos | C++ | Sobre) | O(1) | Fácil | CTCI | |
| 158 | Duas strings são anagramas | C++ | Sobre) | O(1) | Fácil | | |
| 171 | Anagramas | C++ | O (n * klogk) | O(m) | Fácil | LeetCode, EPI | |
| 212 | Substituição de espaço | C++ | Sobre) | O(1) | Fácil | | |
| 407 | Mais um | C++ | Sobre) | O(1) | Fácil | Código Leet | |
| 408 | Adicionar binário | C++ | Sobre) | O(1) | Fácil | Código Leet | |
| 415 | Palíndromo válido | C++ | Sobre) | O(1) | Fácil | Código Leet | |
| 417 | Número válido | C++ | Sobre) | O(1) | Duro | Código Leet | Autômatos |
| 420 | Conte e diga | C++ | O (n * 2 ^ n) | O(2^n) | Fácil | Código Leet | |
| 422 | Comprimento da última palavra | C++ | Sobre) | O(1) | Fácil | Código Leet | |
| 524 | Almofada Esquerda | C++ | O (p + n) | O(1) | Fácil | Código Leet | |
Lista vinculada
| # | Título | Solução | Tempo | Espaço | Dificuldade | Marcação | Observação |
|---|
| 16 | Mesclar duas listas classificadas | C++ | Sobre) | O(1) | Fácil | LeetCode, EPI | |
| 35 | Lista vinculada reversa | C++ | Sobre) | O(1) | Fácil | LeetCode, EPI | |
| 36 | Lista vinculada reversa II | C++ | Sobre) | O(1) | Médio | LeetCode, EPI | |
| 96 | Lista de partições | C++ | Sobre) | O(1) | Fácil | Código Leet | |
| 98 | Lista de classificação | C++ | O(nlogn) | O(logn) | Médio | LeetCode, EPI | |
| 99 | Lista de reordenamento | C++ | Sobre) | O(1) | Médio | Código Leet | |
| 102 | Ciclo de lista vinculada | C++ | Sobre) | O(1) | Médio | Código Leet | |
| 103 | Ciclo de lista vinculada II | C++ | Sobre) | O(1) | Duro | Código Leet | |
| 104 | Mesclar k listas classificadas | C++ | O(n * logk) | O(1) | Médio | Código Leet | Amontoar, dividir e conquistar |
| 105 | Copiar lista com ponteiro aleatório | C++ | Sobre) | O(1) | Médio | Código Leet | |
| 106 | Converter lista classificada em árvore de pesquisa binária | C++ | Sobre) | O(logn) | Médio | LeetCode, EPI | |
| 112 | Remover duplicatas da lista classificada | C++ | Sobre) | O(1) | Fácil | LeetCode, EPI | |
| 113 | Remover duplicatas da lista classificada II | C++ | Sobre) | O(1) | Médio | LeetCode, EPI | |
| 166 | Do enésimo ao último nó da lista | C++ | Sobre) | O(1) | Fácil | Código Leet | |
| 167 | Soma de duas listas | C++ | Sobre) | O(1) | Fácil | Código Leet | |
| 170 | Girar lista | C++ | Sobre) | O(1) | Médio | Código Leet | |
| 173 | Lista de classificação de inserção | C++ | O(n^2) | O(1) | Fácil | Código Leet | |
| 174 | Remover o enésimo nó do final da lista | C++ | Sobre) | O(1) | Fácil | Código Leet | |
| 223 | Lista vinculada do palíndromo | C++ | Sobre) | O(1) | Médio | Código Leet | |
| 372 | Excluir nó no meio da lista vinculada individualmente | C++ | O(1) | O(1) | Fácil | CTCI | |
| 380 | Intersecção de duas listas vinculadas | C++ | O(m + n) | O(1) | Fácil | Código Leet | |
| 450 | Nós reversos no grupo k | C++ | Sobre) | O(1) | Duro | Código Leet | |
| 451 | Trocar nós em pares | C++ | Sobre) | O(1) | Fácil | Código Leet | |
| 452 | Remover elementos da lista vinculada | C++ | Sobre) | O(1) | Ingênuo | Código Leet | |
| 511 | Trocar dois nós na lista vinculada | C++ | Sobre) | O(1) | Médio | | |
Árvore
| # | Título | Solução | Tempo | Espaço | Dificuldade | Marcação | Observação |
|---|
| 7 | Serialização de árvore binária | C++ | Sobre) | Oh) | Médio | | |
| 85 | Inserir nó em uma árvore de pesquisa binária | C++ | Oh) | O(1) | Fácil | | |
| 88 | Menor ancestral comum | C++ | Sobre) | Oh) | Médio | PES | |
| 175 | Inverter árvore binária | C++ | Sobre) | Oh) | Fácil | Código Leet | |
| 442 | Implementar teste | C++ | Sobre) | O(1) | Médio | Código Leet | Tente |
Pilha
| # | Título | Solução | Tempo | Espaço | Dificuldade | Marcação | Observação |
|---|
| 12 | Pilha mínima | C++ | Sobre) | O(1) | Médio | LeetCode, EPI | |
| 40 | Implementar fila por duas pilhas | C++ | O(1), amortizado | Sobre) | Médio | PES | |
| 66 | Travessia de pré-encomenda de árvore binária | C++ | Sobre) | O(1) | Fácil | LeetCode, EPI | Morris Traversal |
| 67 | Travessia em ordem de árvore binária | C++ | Sobre) | O(1) | Fácil | LeetCode, EPI | Morris Traversal |
| 68 | Travessia de pós-ordem de árvore binária | C++ | Sobre) | O(1) | Fácil | LeetCode, EPI | Morris Traversal |
| 122 | Maior retângulo no histograma | C++ | Sobre) | Sobre) | Duro | LeetCode, EPI | Pilha Ascendente |
| 126 | Árvore máxima | C++ | Sobre) | Sobre) | Duro | | Pilha descendente |
| 367 | Construção de árvore de expressão | C++ | Sobre) | Sobre) | Duro | | |
| 368 | Avaliação de Expressão | C++ | Sobre) | Sobre) | Duro | | |
| 369 | Converter expressão em notação polonesa | C++ | Sobre) | Sobre) | Duro | | |
| 370 | Converter expressão em notação polonesa reversa | C++ | Sobre) | Sobre) | Duro | | |
| 421 | Simplifique o caminho | C++ | Sobre) | Sobre) | Médio | Código Leet | |
| 423 | Parênteses Válidos | C++ | Sobre) | Sobre) | Fácil | Código Leet | |
| 424 | Avalie a notação polonesa reversa | C++ | Sobre) | Sobre) | Médio | Código Leet | |
| 473 | Adicionar e pesquisar palavra | C++ | O (min (n, h)) | O(min(n, h) | Médio | Código Leet | Tente |
| 510 | Retângulo Máximo | C++ | O (m * n) | Sobre) | Duro | Código Leet | Pilha Ascendente |
| 528 | Iterador de lista aninhada achatada | C++ | Sobre) | Oh) | Médio | Código Leet | |
Fila
| # | Título | Solução | Tempo | Espaço | Dificuldade | Marcação | Observação |
|---|
| 362 | Janela deslizante máxima | C++ | Sobre) | OK) | Duro | PES | Deque, complicado |
Pilha
| # | Título | Solução | Tempo | Espaço | Dificuldade | Marcação | Observação |
|---|
| 4 | Feio Número II | C++ | Sobre) | O(1) | Médio | CTCI | BST, pilha |
| 81 | Mediana do Fluxo de Dados | C++ | O(nlogn) | Sobre) | Duro | PES | BST, pilha |
| 130 | Heapificar | C++ | Sobre) | O(1) | Médio | | |
| 364 | Capturando Água da Chuva II | C++ | O(m * n * (logm + logn)) | O (m * n) | Duro | | BFS, pilha, complicado |
| 518 | Número super feio | C++ | O (n * k) | O (n + k) | Médio | Código Leet | BST, pilha |
Tabelas hash
| # | Título | Solução | Tempo | Espaço | Dificuldade | Marcação | Observação |
|---|
| 56 | 2 Soma | C++ | Sobre) | Sobre) | Médio | Código Leet | |
| 124 | Sequência consecutiva mais longa | C++ | Sobre) | Sobre) | Médio | LeetCode, EPI | |
| 128 | Função hash | C++ | Sobre) | O(1) | Fácil | | |
| 129 | Refazendo | C++ | Sobre) | Sobre) | Médio | | |
| 138 | Soma do Subarray | C++ | Sobre) | Sobre) | Fácil | | |
| 186 | Máximo de pontos em uma linha | C++ | O(n^2) | Sobre) | Médio | Código Leet | |
| 211 | Permutação de Strings | C++ | Sobre) | O(1) | Fácil | | |
| 384 | Substring mais longa sem repetição de caracteres | C++ | Sobre) | O(1) | Médio | LeetCode, EPI | |
| 386 | Substring mais longa com no máximo K caracteres distintos | C++ | Sobre) | Sobre) | Médio | | |
| 432 | Encontre o componente conectado fraco no gráfico direcionado | C++ | O(nlogn) | Sobre) | Médio | | União Encontrar |
| 434 | Número de Ilhas II | C++ | OK) | OK) | Duro | | União Encontrar |
| 488 | Número feliz | C++ | OK) | OK) | Fácil | Código Leet | |
| 547 | Intersecção de duas matrizes | C++ | O(m + n) | O(min(m, n)) | Fácil | EPI, LeetCode | Dois ponteiros, pesquisa binária |
| 548 | Intersecção de Duas Matrizes II | C++ | O(m + n) | O(min(m, n)) | Fácil | EPI, LeetCode | Dois ponteiros, pesquisa binária |
Estrutura de dados
| # | Título | Solução | Tempo | Espaço | Dificuldade | Marcação | Observação |
|---|
| 134 | Cache LRU | C++ | O(1) | OK) | Duro | LeetCode, EPI | Lista, hash |
Matemática
| # | Título | Solução | Tempo | Espaço | Dificuldade | Marcação | Observação |
|---|
| 2 | Zeros à direita | C++ | O(1) | O(1) | Fácil | Código Leet | |
| 3 | Contagens de dígitos | C++ | O(1) | O(1) | Médio | CTCI | |
| 114 | Caminhos Únicos | C++ | O(min(m, n)) | O(1) | Fácil | LeetCode, CTCI | DP, matemática |
| 163 | Árvores de pesquisa binária exclusivas | C++ | Sobre) | O(1) | Médio | CTCI | DP, matemática, Catalan Number |
| 180 | Representação Binária | C++ | O(1) | O(1) | Duro | CTCI | |
| 197 | Índice de Permutação | C++ | O(n^2) | O(1) | Fácil | | |
| 198 | Índice de Permutação II | C++ | O(n^2) | Sobre) | Médio | | |
| 394 | Moedas em uma linha | C++ | O(1) | O(1) | Fácil | | |
| 411 | Código Gray | C++ | O(2^n) | O(1) | Médio | Código Leet | |
| 413 | Inteiro reverso | C++ | O(1) | O(1) | Médio | Código Leet | |
| 414 | Dividir dois números inteiros | C++ | O(1) | O(1) | Médio | Código Leet | |
| 418 | Inteiro para romano | C++ | Sobre) | O(1) | Médio | Código Leet | |
| 419 | Romano para inteiro | C++ | Sobre) | O(1) | Médio | Código Leet | |
| 428 | Pow(x, n) | C++ | O(1) | O(1) | Médio | Código Leet | |
| 445 | Similaridade de cosseno | C++Píton | Sobre) | O(1) | Fácil | | |
| 517 | Número feio | C++ | O(1) | O(1) | Fácil | CTCI, LeetCode | |
Organizar
| # | Título | Solução | Tempo | Espaço | Dificuldade | Marcação | Observação |
|---|
| 5 | K-ésimo maior elemento | C++ | O (n) ~ O (n ^ 2) | O(1) | Médio | PES | Duas dicas, classificação rápida |
| 80 | Mediana | C++ | Sobre) | O(1) | Fácil | PES | |
| 139 | Soma do subarray mais próxima | C++ | O(nlogn) | Sobre) | Médio | | Organizar |
| 143 | Classificar cores II | C++ | Sobre) | O(1) | Médio | | |
| 148 | Classificar cores | C++ | Sobre) | O(1) | Médio | Código Leet | |
| 156 | Mesclar intervalos | C++ | O(nlogn) | O(1) | Fácil | LeetCode, EPI | |
| 184 | Maior número | C++ | O(nlogn) | O(1) | Médio | Código Leet | |
| 366 | Fibonacci | C++ | Sobre) | O(1) | Fácil | | |
| 379 | Reordene a matriz para construir o número mínimo | C++ | O(nlogn) | O(1) | Médio | Código Leet | |
| 387 | A menor diferença | C++ | O(máx(m, n) * log(min(m, n))) | O(1) | Médio | | Dois ponteiros, pesquisa binária |
| 399 | Problema de porcas e parafusos | C++ | O(nlogn) | O(logn) | Médio | | Classificação rápida |
| 400 | Lacuna Máxima | C++Píton | Sobre) | Sobre) | Duro | Código Leet | Classificação de intervalo |
| 463 | Classificar inteiros | C++ | O(n^2) | O(1) | Fácil | | Classificação por inserção, classificação por seleção, classificação por bolha |
| 464 | Classificar inteiros II | C++ | O(nlogn) | Sobre) | Fácil | | Classificação por mesclagem, classificação por heap, classificação rápida |
| 507 | Wiggle Tipo II | C++ | O(n) em média | O(1) | Médio | Código Leet | Partição Tri |
| 508 | Tipo de manobra | C++ | Sobre) | O(1) | Médio | Código Leet | |
Recursão
| # | Título | Solução | Tempo | Espaço | Dificuldade | Marcação | Observação |
|---|
| 22 | Achatar lista | C++ | Sobre) | Oh) | Fácil | | |
| 72 | Construir árvore binária a partir de travessia em ordem e pós-ordem | C++ | Sobre) | Sobre) | Médio | LeetCode, EPI | |
| 73 | Construir árvore binária a partir de pré-pedido e travessia de pedido | C++ | Sobre) | Sobre) | Médio | LeetCode, EPI | |
| 93 | Árvore binária balanceada | C++ | Sobre) | Oh) | Fácil | Código Leet | |
| 94 | Soma máxima do caminho da árvore binária | C++ | Sobre) | Oh) | Médio | Código Leet | |
| 95 | Validar árvore de pesquisa binária | C++ | Sobre) | Oh) | Médio | Código Leet | |
| 97 | Profundidade Máxima da Árvore Binária | C++ | Sobre) | Oh) | Fácil | Código Leet | |
| 131 | Esboço do edifício | C++Píton | O(nlogn) | Sobre) | Duro | PES | Classificar, BST |
| 140 | Potência rápida | C++ | O(logn) | O(1) | Médio | | |
| 155 | Profundidade Mínima da Árvore Binária | C++ | Sobre) | Oh) | Fácil | Código Leet | |
| 164 | Árvores de pesquisa binária exclusivas II | C++ | O (n * 4 ^ n / n ^ (3/2)) | Sobre) | Médio | Código Leet | |
| 177 | Converter matriz classificada em árvore de pesquisa binária com altura mínima | C++ | Sobre) | O(logn) | Fácil | Código Leet | |
| 201 | Construção de árvore de segmento | C++ | Sobre) | Oh) | Médio | | Árvore de segmento, BST |
| 202 | Consulta de árvore de segmento | C++ | Oh) | Oh) | Médio | | Árvore de segmento, BST |
| 203 | Modificação da árvore de segmento | C++ | Oh) | Oh) | Médio | | Árvore de segmento, BST |
| 205 | Número Mínimo do Intervalo | C++ | construir árvore: O(n) , consulta: (h) | Oh) | Duro | | Árvore de segmento, BST |
| 206 | Soma do intervalo | C++ | árvore de construção: O(n) , consulta: O(logn) | Sobre) | Duro | | Árvore de segmento, BIT |
| 207 | Soma do intervalo II | C++ | construir árvore: O(n) , consultar: O(logn) , modificar: O(logn) | Sobre) | Duro | | Árvore de segmento, BIT |
| 245 | Subárvore | C++ | O (m * n) | O(1) | Fácil | | Morris Traversal |
| 247 | Consulta de árvore de segmento II | C++ | Oh) | Oh) | Duro | | Árvore de segmento, BST |
| 248 | Contagem de número menor | C++ | árvore de construção: O(n) , consulta: O(logn) | Oh) | Médio | | Árvore de segmento, BST |
| 371 | Imprimir números por recursão | C++ | Sobre) | Sobre) | Médio | | |
| 375 | Clonar árvore binária | C++ | Sobre) | Oh) | Fácil | | |
| 378 | Converter árvore de pesquisa binária em lista duplamente vinculada | C++ | Sobre) | Oh) | Médio | | |
| 439 | Construção de árvore de segmento II | C++ | Sobre) | Oh) | Médio | | Árvore de segmento, BST |
| 453 | Achatar árvore binária em lista vinculada | C++ | Sobre) | Oh) | Fácil | Código Leet | |
| 469 | Árvore Binária Idêntica | C++ | Sobre) | Oh) | Fácil | | |
| 532 | Pares Reversos | C++ | O(nlogn) | Sobre) | Médio | variante de contagem de número menor antes de si mesmo | BIT, classificação por mesclagem |
| 535 | Ladrão de Casa III | C++ | Sobre) | Oh) | Médio | Código Leet | |
Pesquisa binária
| # | Título | Solução | Tempo | Espaço | Dificuldade | Marcação | Observação |
|---|
| 14 | Primeira posição do alvo | C++ | O(logn) | O(1) | Fácil | | |
| 28 | Pesquise uma matriz 2D | C++ | O(logm + logn) | O(1) | Fácil | Código Leet | |
| 60 | Posição de inserção de pesquisa | C++ | O(logn) | O(1) | Fácil | Código Leet | |
| 61 | Procure um intervalo | C++ | O(logn) | O(1) | Médio | Código Leet | |
| 62 | Pesquisar em matriz classificada girada | C++ | O(logn) | O(1) | Médio | Código Leet | |
| 63 | Pesquisar em matriz ordenada rotacionada II | C++ | O(logn) | O(1) | Médio | Código Leet | |
| 65 | Mediana de duas matrizes classificadas | C++ | O(log(min(m, n))) | O(1) | Duro | LeetCode, EPI | Complicado |
| 74 | Primeira versão ruim | C++ | O(logn) | O(1) | Médio | | |
| 75 | Encontre o elemento de pico | C++ | O(logn) | O(1) | Médio | Código Leet | |
| 76 | Subsequência crescente mais longa | C++ | O(nlogn) | Sobre) | Médio | CTCI | |
| 141 | Quadrado(x) | C++ | O(logn) | O(1) | Fácil | Código Leet | |
| 159 | Encontre o mínimo na matriz classificada girada | C++ | O(logn) | O(1) | Médio | Código Leet | |
| 160 | Encontre o mínimo na matriz classificada girada II | C++ | O(logn) | O(1) | Médio | Código Leet | |
| 183 | Corte de madeira | C++ | O(nlogL) | O(1) | Médio | | |
| 390 | Encontre o Elemento de Pico II | C++JavaPython | O(m + n) | O(1) | Duro | | |
| 437 | Copiar livros | C++ | O(nlogp) | O(1) | Duro | UVa 714 | |
Pesquisa ampla
| # | Título | Solução | Tempo | Espaço | Dificuldade | Marcação | Observação |
|---|
| 69 | Travessia de pedido em nível de árvore binária | C++ | Sobre) | Sobre) | Médio | Código Leet | BFS |
| 70 | Travessia de ordem de nível de árvore binária II | C++ | Sobre) | Sobre) | Médio | Código Leet | BFS |
| 71 | Travessia de ordem de nível em zigue-zague de árvore binária | C++ | Sobre) | Sobre) | Médio | Código Leet | BFS |
| 120 | Escada de palavras | C++ | Sobre (n * d) | Ó (d) | Médio | Código Leet | BFS |
| 121 | Escada de palavras II | C++ | Sobre (n * d) | Ó (d) | Duro | Código Leet | BFS, rastreamento traseiro |
| 127 | Classificação topológica | C++ | O(|V|+|E|) | O(|E|) | Médio | | DFS, BFS |
| 137 | Clonar gráfico | C++ | O(|V|+|E|) | O(|V|) | Médio | | BFS |
| 176 | Rota entre dois nós no gráfico | C++ | Sobre) | Sobre) | Médio | | DFS, BFS |
| 178 | Árvore válida do gráfico | C++ | O(|V| + |E|) | O(|V| + |E|) | Médio | Código Leet | |
| 431 | Encontre o componente conectado no gráfico não direcionado | C++ | Sobre) | Sobre) | Médio | | BFS |
| 477 | Regiões Cercadas | C++ | O (m * n) | O(m + n) | Médio | Código Leet | |
Pesquisa em profundidade
| # | Título | Solução | Tempo | Espaço | Dificuldade | Marcação | Observação |
|---|
| 90 | Soma K II | C++ | Ó (k * C (n, k)) | OK) | Médio | | |
| 376 | Soma do caminho da árvore binária | C++ | Sobre) | Oh) | Fácil | Código Leet | |
| 433 | Número de ilhas | C++ | O (m * n) | O (m * n) | Fácil | Código Leet | DFS |
| 480 | Caminhos de árvore binária | C++ | O (n * h) | Oh) | Fácil | Código Leet | |
Retrocesso
| # | Título | Solução | Tempo | Espaço | Dificuldade | Marcação | Observação |
|---|
| 15 | Permutações | C++ | Sobre (n * n!) | Sobre) | Médio | LeetCode, EPI | |
| 16 | Permutações II | C++ | Sobre (n * n!) | Sobre) | Médio | LeetCode, EPI | |
| 17 | Subconjuntos | C++ | O (n * 2 ^ n) | O(1) | Médio | Código Leet | |
| 18 | Subconjuntos II | C++ | O (n * 2 ^ n) | O(1) | Médio | Código Leet | |
| 33 | N-Rainhas | C++ | Sobre (n * n!) | Sobre) | Médio | LeetCode, EPI | |
| 34 | N-Queens II | C++ | Sobre (n * n!) | Sobre) | Médio | LeetCode, EPI | |
| 123 | Pesquisa de palavras | C++ | O(m * n * eu) | O(eu) | Médio | Código Leet | |
| 132 | Pesquisa de palavras II | C++ | O(m * n * eu) | O(eu) | Duro | | Tente, DFS |
| 135 | Soma Combinada | C++ | Ok (ok * n ^ k) | OK) | Médio | Código Leet | DFS |
| 136 | Particionamento Palíndromo | C++ | O(2^n) | Sobre) | Fácil | LeetCode, EPI | |
| 152 | Combinações | C++ | Ok (ok * n ^ k) | OK) | Médio | LeetCode, EPI | |
| 153 | Soma Combinada II | C++ | Ó (k * C (n, k)) | OK) | Médio | Código Leet | DFS |
| 425 | Combinações de letras de um número de telefone | C++ | O (n * 4 ^ n) | Sobre) | Médio | Código Leet | |
| 426 | Restaurar endereços IP | C++ | O(1) | O(1) | Médio | Código Leet | |
| 427 | Gerar parênteses | C++ | O (4 ^ n / n ^ (3/2)) | Sobre) | Médio | Código Leet | |
Árvores de pesquisa binária
| # | Título | Solução | Tempo | Espaço | Dificuldade | Marcação | Observação |
|---|
| 11 | Intervalo de pesquisa na árvore de pesquisa binária | C++ | Sobre) | Oh) | Médio | PES | |
| 86 | Iterador de árvore de pesquisa binária | C++ | O(1) | Oh) | Duro | Código Leet | |
| 87 | Remover nó na árvore de pesquisa binária | C++ | Oh) | Oh) | Duro | | |
| 249 | Contagem de número menor antes de si mesmo | C++ | O(nlogn) | Sobre) | Duro | | BST, BIT, Dividir e Conquistar, Mesclar Classificação |
| 360 | Mediana da janela deslizante | C++ | O(nlogw) | O(w) | Duro | | BST, complicado |
| 391 | Número de aviões no céu | C++ | O(nlogn) | Sobre) | Fácil | | BST, pilha |
| 401 | K-ésimo menor número na matriz classificada | C++ | O(klog(min(m, n, k))) | O(min(m, n, k)) | Médio | | BST, pilha |
Programação Dinâmica
| # | Título | Solução | Tempo | Espaço | Dificuldade | Marcação | Observação |
|---|
| 20 | Soma de dados | C++ | O(n^2) | Sobre) | Duro | | |
| 29 | String intercalada | C++ | O (m * n) | O(min(m, n)) | Médio | PES | |
| 43 | Submatriz Máxima III | C++ | Ó (ok * n) | Ó (ok * n) | Duro | | |
| 77 | Subsequência Comum Mais Longa | C++ | O (m * n) | O(min(m, n)) | Médio | | |
| 79 | Substring comum mais longa | C++ | O (m * n) | O(min(m, n)) | Médio | | |
| 89 | Soma K | C++ | Ó (k * n * t) | O (n * t) | Duro | | |
| 91 | Custo Mínimo de Ajuste | C++ | Ó (k * n * t) | OK) | Médio | | |
| 92 | Mochila | C++ | O (m * n) | O(m) | Fácil | | |
| 107 | Quebra de palavra | C++ | O (n * l ^ 2) | Sobre) | Médio | LeetCode, EPI | |
| 108 | Particionamento Palíndromo II | C++ | O(n^2) | Sobre) | Médio | LeetCode, EPI | |
| 109 | Triângulo | C++ | Sobre) | Sobre) | Fácil | LeetCode, EPI | |
| 110 | Soma Mínima do Caminho | C++ | O (m * n) | O(min(m, n)) | Fácil | LeetCode, EPI | |
| 111 | Subindo escadas | C++ | O(logn) | O(1) | Fácil | Código Leet | |
| 115 | Caminhos Únicos II | C++ | O (m * n) | O(min(m, n)) | Fácil | LeetCode, CTCI | DP, matemática |
| 118 | Subsequências distintas | C++ | O (m * n) | O(m) | Médio | Código Leet | PD |
| 119 | Editar distância | C++ | O (m * n) | O(min(m, n)) | Médio | LeetCode, CTCI | PD |
| 125 | Mochila II | C++ | O (m * n) | O(m) | Médio | | |
| 149 | Melhor momento para comprar e vender ações | C++ | Sobre) | O(1) | Médio | LeetCode, EPI | |
| 150 | Melhor momento para comprar e vender ações II | C++ | Sobre) | O(1) | Médio | LeetCode, EPI | |
| 151 | Melhor momento para comprar e vender ações III | C++ | Sobre) | O(1) | Médio | LeetCode, EPI | |
| 154 | Correspondência de Expressões Regulares | C++ | O (m * n) | O(m) | Duro | Código Leet | DP, Recursão |
| 168 | Estourar balões | C++ | O (n ^ 3) | O(n^2) | Médio | Código Leet | |
| 191 | Submatriz Máxima do Produto | C++ | Sobre) | O(1) | Médio | Código Leet | |
| 392 | Ladrão de casa | C++ | Sobre) | O(1) | Médio | Código Leet | |
| 393 | Melhor momento para comprar e vender ações IV | C++ | Ó (ok * n) | OK) | Duro | LeetCode, EPI | |
| 395 | Moedas em uma Linha II | C++ | Sobre) | O(1) | Médio | | |
| 396 | Moedas em uma Linha III | C++ | O(n^2) | Sobre) | Duro | | |
| 397 | Subsequência contínua crescente mais longa | C++ | Sobre) | O(1) | Fácil | | |
| 398 | Subsequência contínua crescente mais longa II | C++ | O (m * n) | O (m * n) | Duro | | |
| 403 | Soma Contínua de Submatrizes II | C++ | Sobre) | O(1) | Médio | PES | |
| 430 | Corda embaralhada | C++ | O (n ^ 4) | O (n ^ 3) | Duro | Código Leet | |
| 435 | Problema dos Correios | C++ | Ó (k * n ^ 2) | Sobre) | Duro | PKU 1160 | |
| 436 | Quadrado Máximo | C++ | O (m * n) | Sobre) | Médio | Código Leet | |
| 512 | Métodos de decodificação | C++ | Sobre) | O(1) | Médio | Código Leet | |
| 513 | Quadrados Perfeitos | C++ | O(n * quadrado(n)) | Sobre) | Médio | Código Leet | |
| 514 | Cerca de pintura | C++ | Sobre) | O(1) | Fácil | Código Leet | |
| 515 | Pintar Casa | C++ | Sobre) | O(1) | Médio | Código Leet | |
| 516 | Casa de pintura II | C++ | O (n * k) | OK) | Duro | Código Leet | |
| 534 | Ladrão de Casa II | C++ | Sobre) | O(1) | Médio | Código Leet | |
| 564 | Mochila VI | C++ | O (n * t) | O(t) | Médio | | |
Ambicioso
| # | Título | Solução | Tempo | Espaço | Dificuldade | Marcação | Observação |
|---|
| 41 | Submatriz Máxima | C++ | Sobre) | O(1) | Fácil | Código Leet | |
| 42 | Submatriz Máxima II | C++ | Sobre) | Sobre) | Médio | | |
| 44 | Submatriz Mínima | C++ | Sobre) | O(1) | Fácil | | |
| 45 | Diferença máxima de submatriz | C++ | Sobre) | Sobre) | Médio | | |
| 116 | Jogo de salto | C++ | Sobre) | O(1) | Médio | Código Leet | |
| 117 | Jogo de Salto II | C++ | Sobre) | O(1) | Médio | Código Leet | |
| 182 | Excluir dígitos | C++ | Sobre) | Sobre) | Médio | | |
| 187 | Posto de gasolina | C++ | Sobre) | O(1) | Fácil | Código Leet | |
| 192 | Correspondência de curinga | C++ | O(m + n) | O(1) | Duro | Código Leet | Ganancioso, DP, Recursão |
| 402 | Soma Contínua de Submatrizes | C++ | Sobre) | O(1) | Médio | PES | |
| 412 | Doce | C++ | Sobre) | Sobre) | Duro | Código Leet | Ambicioso |
| 552 | Criar número máximo | C++ | O(k * (m + n + k)) ~ O(k * (m + n + k^2)) | O(m + n + k^2) | Duro | Código Leet | Ganancioso, DP |
Projeto OO
| # | Título | Solução | Tempo | Espaço | Dificuldade | Marcação | Observação |
|---|
| 204 | Solteiro | C++ | O(1) | O(1) | Fácil | | |
| 208 | Sobrecarga do operador de atribuição (somente C++) | C++ | Sobre) | O(1) | Médio | | |
| 496 | Fábrica de brinquedos | C++ | O(1) | O(1) | Fácil | | |
| 497 | Fábrica de Formas | C++ | O(1) | O(1) | Fácil | | |
| 498 | Estacionamento | C++ | O(n*m*k) | O(n*m*k) | Duro | CTCI | Design OO, idioma Pimpl, ponteiro inteligente |
Projeto do sistema
| # | Título | Solução | Tempo | Espaço | Dificuldade | Marcação | Observação |
|---|
| 501 | MiniTwitter | C++ | O(klogu) | O (t + f) | Médio | | |