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 | | |