Chinês Simplificado | Inglês
Nosso slogan é: Somente dominando estruturas de dados e algoritmos básicos poderemos lidar com problemas complexos com facilidade.
Meu novo livro "The Road to Algorithmic Clearance" foi publicado.
Link de compra do livro versão física 1
Link para compra do livro versão física 2
Link para compra de livro eletrônico
https://github.com/fe-lucifer/fanqiang
As perguntas gratuitas do Likou já possuem muitas perguntas clássicas, cobrindo todos os tipos de perguntas, mas as perguntas reais de muitas empresas estão bloqueadas. Pessoalmente, acho que se você está procurando emprego, pode adquirir uma assinatura. Além disso, existem muitos leetbooks que podem ser visualizados pelos membros. Combinados com o plano de estudos, a eficiência é bastante elevada.
Agora o Liquou lançou um desafio de adesão adicional baseado em uma pergunta por dia. Você pode ganhar pontos respondendo às perguntas todos os dias, e os pontos podem ser trocados por periféricos do Liquou.
Se você quiser comprar uma assinatura do Leetcode, aqui está meu desconto exclusivo do Leetcode: https://leetcode.cn/premium/?promoChannel=lucifer (os membros anuais receberão dois meses extras de assinatura e os membros trimestrais receberão duas semanas extras de adesão)
Muitas instituições de ensino promovem entrevistas algorítmicas em 7 dias e um mês. Provavelmente já entendi, mas não é muito confiável. Algoritmos de aprendizagem ainda requerem acumulação. Sem mudanças quantitativas, não pode haver mudanças qualitativas. Algumas pessoas optam por ler livros, o que é uma boa escolha. Porém, muitas pessoas escolhem livros desatualizados ou de baixa qualidade, ou não sabem escrever os exercícios indicados no livro, resultando em resultados insatisfatórios.
Com base nestas razões, organizei uma atividade de teste de 91 dias, dando o último caminho de aprendizagem ao longo de um período de tempo relativamente longo (91 dias), e obrigando todos a fazerem o check-in, um exercício de alta intensidade, para que todos possam conheçam-se depois de 91 dias. Uma versão melhor de você mesmo . A introdução detalhada do evento pode ser visualizada clicando no link abaixo. Além disso, as notas de aula das edições anteriores também estão abaixo. Você pode ver se elas atendem ao seu gosto.
Por fim, gostaria de lhe dar uma mensagem: se você persistir, um dia você crescerá de repente .
Clique aqui para participar
Se você acha que as atividades de grupo acima são relativamente ineficientes, atualmente também aceito treinamento de algoritmo 1v1. O preço depende da base do seu algoritmo e do conteúdo que você deseja aprender. Se você estiver interessado, pode me adicionar no WeChat, observação "Algoritmo". Treinamento", ID do WeChat: DevelopeEngineer.
Resolução de problemas Leetcode, registre seu próprio caminho de resolução de problemas leetcode.
Este armazém está atualmente dividido em cinco partes:
A primeira parte é a análise de questões clássicas do leetcode, incluindo ideias, pontos-chave e implementações específicas de código.
A segunda parte é um resumo das estruturas de dados e algoritmos.
A terceira parte são os cartões anki. As perguntas do leetcode são gravadas no anki de uma certa forma para facilitar a memória de todos.
A quarta parte é uma pergunta diária. A pergunta diária é uma atividade realizada em grupos de comunicação (incluindo WeChat e QQ). Todos resolvem uma questão juntos, para que a discussão seja mais focada e mais feedback seja obtido. Além disso, essas questões podem ser registradas e futuramente serão filtradas e adicionadas ao módulo de solução do warehouse.
A quinta parte é o plano. Aqui registraremos o conteúdo que será adicionado às três partes acima no futuro.
Nota: O e-book aqui não é a versão eletrônica de “The Road to Algorithmic Clearance”, mas a versão eletrônica do conteúdo deste armazém!
Leia o endereço on-line
Download gratuito por tempo limitado! As taxas podem ser cobradas a qualquer momento posteriormente
Você pode ir ao backend da minha conta oficial "Likoujiajia" para responder e obter o e-book!
epub ainda tem animações
Além disso, alguns conteúdos só são divulgados na conta oficial, então se você acha que o conteúdo é bom, fique atento. Seria ainda melhor se você desse ➕ outra estrela!
(Foto do leetcode)
Entre eles, os algoritmos são principalmente os seguintes:
As estruturas de dados incluem principalmente o seguinte:
Encontrei uma "Folha de dicas de entrevista" online. Este PDF lista as etapas do modelo para uma entrevista. , com instruções passo a passo detalhadas sobre como concluir a entrevista.
Este PDF menciona três critérios para um bom código no início:
Isso está tão bem escrito.
A seguir, são listadas 15 etapas da entrevista algorítmica. Por exemplo, Etapa 1: depois que o entrevistador terminar de fazer as perguntas, você precisa primeiro anotar os pontos-chave (e depois escrever os comentários e o código abaixo) . a taxa de sucesso aumentará.
Talvez seja uma extensão do navegador que pode alterar a eficiência de respostas a perguntas.
Endereço do plug-in: https://chrome.google.com/webstore/detail/leetcode-cheatsheet/fniccleejlofifaakbgppmbbcdfjonle?hl=en-US.
Amigos que não conseguem acessar a Google Store podem acessar minha conta oficial para responder ao plug-in e obter a versão offline. É altamente recomendável que você utilize a Google Play Store para instalar, para que caso haja atualizações, elas possam ser instaladas automaticamente. Afinal, nossos plug-ins são atualizados com bastante rapidez.
Além disso, você também pode utilizar o site desenvolvido pela zerotrac para calcular a pontuação das questões acertadas. A pontuação aqui se refere à pontuação da competição. Você pode escolher questões um pouco mais altas que a sua pontuação na competição para praticar com base na pontuação da competição. Observe que esta é apenas uma pontuação estimada calculada com base no número de pessoas que passaram. Endereço: https://zerotrac.github.io/leetcode_problem_rating/
Aqui estão apenas tópicos representativos , nem todos os tópicos
Atualmente, mais de 200 soluções de perguntas foram atualizadas e, incluindo questões relacionadas a tópicos especiais, são quase 300 questões .
A dificuldade das questões aqui é relativamente baixa, e a maioria delas são questões de simulação, ou questões cujas soluções são fáceis de ver. Além disso, questões simples geralmente podem ser resolvidas usando métodos de força bruta. Neste momento, basta olhar para o intervalo de dados e pensar na complexidade do seu algoritmo.
Claro, não está descartado que muitas questões difíceis também possam ser simuladas de forma violenta. Basta prestar mais atenção ao intervalo de dados.
A seguir estão as perguntas clássicas que listei (as palavras marcadas com 91 são da Atividade do Algoritmo Tianxue 91 ):
Pergunta da entrevista 17.12.
0001. Soma de dois números
0020. Parênteses válidos
0021. Mesclar duas listas vinculadas ordenadas
0026. Remover duplicatas na matriz classificada
0053. Soma máxima de subsequência
0066. mais um 91
0088. Mesclar duas matrizes classificadas
0101. Árvore binária simétrica
0104. Profundidade máxima da árvore binária
0108. Converter array ordenado em árvore de pesquisa binária
0121. O melhor momento para comprar e vender ações
0122. O melhor momento para comprar e vender ações II
0125. Verifique a string do palíndromo
0136. Um número que aparece apenas uma vez
0155. Pilha mínima?
0160. Lista vinculada cruzada 91
0167. Soma de dois números II matriz ordenada de entrada
0169. A maioria dos elementos
0172. Zero após fatorial
0190. Bits binários reversos
0191. Número de bits 1
0198. Roubo
0203. Remover elementos da lista vinculada
0206. Lista vinculada inversamente
0219. Existem elementos duplicados II
0226. Inverta uma árvore binária
0232. Usar pilha para implementar a fila 91?
0263. Números feios
0283. Mover zero
0342. Potência de 4?
0349. Interseção de duas matrizes
0371. Soma de dois inteiros
401. Relógio Binário
0437. Caminho Soma III
0455. Distribuir biscoitos
0504. Número base sete
0575. Compartilhe doces
0606. Crie uma string baseada em uma árvore binária
0661. Imagem mais suave
0665. Sequência não decrescente
821. A menor distância entre os caracteres 91
0874. Robô ambulante simulado
1128. Número de pares de dominó equivalentes
1260. Migração de malha 2D
1332. Excluir subsequências palindrômicas
2591. Dê dinheiro ao maior número de crianças
As questões de nível médio têm a maior proporção de deduções, então tenho mais soluções para essa parte. Não se preocupe muito com problemas difíceis. Primeiro, domine as questões de dificuldade média antes de prosseguir.
Esta parte das perguntas exige que desenterremos as informações contidas nas perguntas e as abstraamos em perguntas simples. Ou há algumas perguntas que são mais difíceis de escrever e algumas pessoas falham devido às suas fracas habilidades de codificação. Portanto, todos devem fazer isso sozinhos. Mesmo que “entendam” depois de ler a solução, eles mesmos ainda terão que codificá-la. A menos que você mesmo escreva, você nunca saberá os detalhes internos.
A seguir estão as perguntas clássicas que listei (as palavras marcadas com 91 são da Atividade do Algoritmo Tianxue 91 ):
Pergunta da entrevista 17.09.
Pergunta da entrevista 17.23. Matriz quadrada preta máxima.
Pergunta da entrevista 16.16.
Aumentando dígitos?
Sublista de aumento contíguo e estrito mais longo após a exclusão?
Vitórias consecutivas
Classificar string por inversão
Número de substrings com diferença de um único caractere
Tarifa de ônibus?
Soma mínima do caminho de descarte
Comprimento do caminho da matriz mais longa
Soma mínima de cada sublista
Maximize o número de pares equivalentes após as trocas
0002. Adicione dois números
0003. A substring mais longa sem caracteres repetidos
0005. A substring do palíndromo mais longa
0011. O recipiente que contém mais água
0015. Soma de três números
0017. Alfabeto de número de telefone
0019. Exclua o enésimo nó da parte inferior da lista vinculada
0022. Geração de colchetes
0024. Troque nós na lista vinculada em pares
0029. Divida dois números
0031. Próximo arranjo
0033. Pesquisando uma matriz classificada girada
0039. Soma combinada
0040. Soma Combinada II
0046. Arranjo completo
0047. Arranjo completo II
0048. Girar imagem
0049. Agrupamento de anagramas alfabéticos
0050. Pow(x, n) ?
0055. Jogo de salto
0056. Intervalo de mesclagem
0060. A k-ésima permutação?
0061. Lista vinculada rotativa 91
0062. Caminhos diferentes
0073. Zerar matriz
0075. Classificação de cores?
0078. Subconjunto
0079. Pesquisa de palavras
0080. Remover duplicatas na matriz classificada II
0086. Lista vinculada separada
0090. Subconjunto II
0091. Método de decodificação
0092. Lista vinculada reversa II
0094. Percurso em ordem da árvore binária?
0095. Diferentes árvores de pesquisa binária II
0096. Diferentes árvores de pesquisa binária
0098. Verifique a árvore de pesquisa binária
0102. Travessia de ordem de nível da árvore binária
0103. Travessia em nível de ziguezague da árvore binária
0113. Caminho Soma II
0129. Encontre a soma dos números da raiz aos nós folha?
0130. Área cercada
0131. Sequência de palíndromo dividida
0139. Divisão de palavras
0144. Travessia de pré-ordem da árvore binária
0147. Classificação de inserção na lista vinculada
0150. Avaliação reversa da expressão polonesa
0152. Submatriz máxima do produto
0153. Encontre o valor mínimo em uma matriz classificada girada
0199. Visão correta de uma árvore binária?
0200. Número de ilhas?
0201. AND bit a bit de intervalos numéricos
0208. Implementar Trie (árvore de prefixos)
0209. Subarray com comprimento mínimo
0211. Adicionando e pesquisando design de estrutura de dados de palavras
0215. O K-ésimo maior elemento da matriz
0220. Presença de elemento III repetido
0221. Quadrado máximo
0227. Calculadora Básica II
0229. Encontre o modo II
0230. O K-ésimo menor elemento na árvore de pesquisa binária
0236. O ancestral comum mais recente de uma árvore binária
0238. Produto de matrizes diferentes dele mesmo
0240. Pesquisando matrizes bidimensionais II
0279. Número quadrado perfeito
0309. O melhor momento para comprar e vender ações inclui o período de congelamento
0322. Troca de câmbio?
0324. Balanço Tipo II
0328. Lista vinculada ímpar e par
0331. Verifique a serialização de pré-encomenda de árvores binárias
0334. Aumentando a subsequência ternária
0337. Roubo III
0343. Divisão inteira
0365. Problema na chaleira
0378. K-ésimo menor elemento na matriz ordenada
0380. Inserção, exclusão e recuperação em tempo constante de elementos aleatórios
0385. Mini analisador
0394. Decodificação de string 91
0416. Dividir subconjuntos de somas iguais
0424. O caractere repetido mais longo após a substituição
0438. Encontre todos os anagramas de letras em uma string
0445. Adicionando dois números II
0454. Adição de Quatro Números II
0456. Modo 132
0457.457.0 existe um loop na matriz circular?
0464. Posso ganhar?
0470. Implemente Rand10 usando Rand7()
0473. Os fósforos formam um quadrado?
0494. Metas e
0516. A subsequência palíndromo mais longa
0513. Encontre o valor 91 no canto inferior esquerdo da árvore
0518. Troca de Mudanças II
0525. Matriz contínua
0547. Número de províncias
0560. Subarray cuja soma é K
0609. Encontre arquivos duplicados no sistema
0611. Número de triângulos válidos?
0673. Número de subsequências crescentes mais longas
0686. Correspondência repetida de strings empilhadas
0710. Números aleatórios na lista negra
0714. O melhor momento para comprar e vender ações, incluindo taxas de manuseio
0718. Submatriz de repetição mais longa
0735. Colisão planetária?
0754. Número final alcançado
0785. Julgamento de grafos bipartidos
0790. Ladrilhos Domino e Tomino
0799. Torre de champanhe
0801. Número mínimo de trocas para incrementar a sequência
0816. Coordenadas difusas
0820. Codificação de compressão de palavras
0838. Empurre dominó
0873. O comprimento da subsequência de Fibonacci mais longa
0875. Keke que adora bananas
0877. Jogo de Pedra
0886. Possível Dicotomia
0898. Operação OR bit a bit de subarrays
0900. Iterador RLE
0911. Eleições on-line
0912. Classificação de matriz
0918. Soma máxima de submatrizes circulares?
0932. Linda matriz
0935. Discador Cavaleiro
0947. Remova o maior número de pedras na mesma linha ou linha
0959. Áreas divididas por barras
0978. Submatriz de turbulência mais longa
0987. Travessia de ordem vertical da árvore binária 91
1004. Número máximo de 1's III consecutivos
1011. Capacidade de entregar o pacote em D dias
1014. Melhor combinação de passeios turísticos
1015. O menor número inteiro divisível por K
1019. O próximo nó maior na lista vinculada
1020. Número de enclaves
1023. Correspondência de CamelCase
1031. Soma máxima de duas submatrizes não sobrepostas
1043. Divida um array para obter a soma máxima
1053. Permutação anterior trocada uma vez)
1104. Localização de caminho de árvore binária
1129. Caminho mais curto com cores alternadas
1131. Valor máximo da expressão de valor absoluto
1138. Caminho no quadro do alfabeto
1186. Exclua uma vez para obter a soma máxima do subarray
1218. Subsequência de diferença definida mais longa
1227. Qual a probabilidade de alocação de assentos em aeronaves?
1261. Encontrando elementos em uma árvore binária contaminada
1262. A maior soma divisível por três
1297. O número máximo de ocorrências de uma substring
1310. Consulta XOR de subarray
1334. A cidade com menos vizinhos dentro da distância limite
1371. A substring mais longa contendo um número par de vezes cada vogal
1381. Projete uma pilha que suporte operações incrementais 91
1423. Número máximo de pontos obtidos
1438. A submatriz contínua mais longa cuja diferença absoluta não excede o limite
1558. Obtenha o número mínimo de chamadas de função para o array de destino
1574. Exclua o subarray mais curto para classificar o array restante
1589. Soma máxima entre todas as permutações
1631. Caminho mínimo de consumo físico
1638. Conte o número de substrings que diferem em apenas um caractere
1658. Número mínimo de operações para reduzir x a 0
1697. Verifique se existe caminho com limite de comprimento de borda
1737. O número mínimo de caracteres que precisam ser alterados para satisfazer uma das três condições?
1770. Fração máxima para realizar multiplicação 91?
1793. Pontuação máxima de boas submatrizes
1834. CPU de thread único
1899. Mesclar vários triplos para formar um triplo alvo?
1904. Número de jogos completos que você completou
1906. Consulte o valor mínimo do valor absoluto da diferença
2007. Restaurando array original de array duplo
2008. Lucro máximo do táxi
2592. Maximizando o grande valor de um array
2593. Pontuação do array após marcar todos os elementos
2817. Diferença absoluta mínima entre elementos sob restrições
2865. Bela Torre I
2866. Bela Torre II
2939. Produto XOR máximo
5935. Um bom dia para roubar um banco
5936. O maior número de bombas detonadas
5965. Soma de intervalos dos mesmos elementos
6021. Número máximo de substrings em uma string
Em termos de tipos, as questões difíceis são principalmente:
Em termos de soluções, a maioria delas são:
Falando logicamente, é muito difícil de pensar ou muito difícil de codificar. Como às vezes vários algoritmos precisam ser combinados, esta parte da questão é a mais difícil.
Aqui resumi algumas dicas:
A seguir estão as perguntas clássicas que listei (as palavras marcadas com 91 são da Atividade do Algoritmo Tianxue 91 ):
LCP 20. Trânsito Rápido
LCP 21. Jogo de perseguição?
Fluxo numérico para intervalos
Inversão Tripla 91
Distância do K-ésimo Par 91
Raio de luz mínimo 91
Maior conjunto equivalente de pares?
Pedido de ingresso.md
Estrada conectada ao destino
0004. Encontre a mediana de duas matrizes ordenadas positivamente?
0023. Mesclar K listas vinculadas ascendentes
0025. Um conjunto de K listas vinculadas?
0030. Concatenar substrings de todas as palavras
0032. Maior colchete válido
0042. Captação de água da chuva
0052. N Rainha II
0057. Inserir intervalo
0065. Valores válidos
0084. O maior retângulo no histograma
0085. Retângulo máximo
0087. Embaralhe a corda
0124. Soma máxima do caminho na árvore binária
0128. A sequência contínua mais longa
0132. Sequência de palíndromo dividida II?
0140. Divisão de palavras II
0145. Travessia pós-ordem da árvore binária
0146. Mecanismo de cache LRU
0154. Encontrando o valor mínimo em uma matriz classificada girada II
0212. Pesquisa de palavras II
0239. Valor máximo da janela deslizante?
0295. Mediana do fluxo de dados
0297. Serialização e desserialização de árvores binárias 91
0301. Remova colchetes inválidos
0312. Pique o balão
330. Complete a matriz conforme necessário
0335. Cruzamento de caminho
0460. Cache LFU
0472. Palavras conectivas
0480. Mediana de janela deslizante
0483. Base mínima boa
0488. Jogo Zuma
0493. Virar par
0664. Impressora estranha
0679. Jogo de Blackjack
0715. Módulo de alcance?
0726. Número de átomos
0768. O número máximo de blocos que podem ser ordenados é II 91
0805. Divisão média do array
0839. Grupos de strings semelhantes
0887. Ovo caiu
0895. Pilha de frequência máxima
0909. Cobras e Escadas
0975. Salto ímpar-par
0995. Número mínimo de lançamentos de K bits consecutivos
1032. Fluxo de caracteres
1168. Otimização da alocação de recursos hídricos
1178. Quebra-cabeça de adivinhação de palavras
1203. Gestão de Projetos
1255. O conjunto de palavras com maior pontuação
1345. Jogo de Salto IV
1449. A soma dos custos digitais é o maior número de valores-alvo.
1494. Curso Paralelo II
1521. Encontre o valor da função mais próximo do valor alvo
1526. Número mínimo de incrementos de submatrizes formando a matriz alvo
1639. O número de opções para construir a string de destino através do novo dicionário fornecido
1649. Crie um array ordenado por meio de instruções
1671. Obtenha o número mínimo de exclusões da cadeia montanhosa
1707. Valor máximo de XOR com os elementos do array
1713. Número mínimo de operações para obter subsequência
1723. Tempo mínimo para concluir todos os trabalhos
1787. Faça o resultado XOR de todos os intervalos zero
1835. Soma XOR dos resultados AND bit a bit de todos os pares de números
1871. Jogo de Salto VII?
1872. O Jogo da Pedra VIII
1883. Número mínimo de pausas omitidas para chegar na hora certa à reunião
1970. O último dia em que você pode cruzar a matriz
2009. Número mínimo de operações para tornar um array contíguo
2025. Número máximo de maneiras de dividir um array
2030. Subsequência mínima contendo letras específicas
2102. Consulta de ordem de sequência
2141. O tempo mais longo para executar N computadores ao mesmo tempo
2179. Contar o número de triplos bons em uma matriz?
2209. Mínimo de tijolos brancos após cobri-los com carpete?
2281. O poder total dos magos e
2306. Boas perguntas sobre otimização de enumeração de nomes de empresas
2312. Problema clássico de programação dinâmica de venda de blocos de madeira
2842. Conte o número máximo de valores bonitos de k subsequências de uma string
2972. Conte o número de submatrizes crescentes removidas II
3027. Número de planos para cargos de pessoal II
3041. Maximize o número de elementos consecutivos na matriz após modificar a matriz
3082. Encontre a soma de energia de todas as subsequências
3108. O custo mínimo de viajar com Quan Tuli
3347. Maior frequência do elemento após realizar a operação II
3336. Número de subsequências com máximos divisores comuns iguais
Anki é dividido principalmente em duas partes: uma é o mapeamento de pontos-chave para perguntas e a outra é o mapeamento de perguntas para ideias, pontos-chave e códigos.
Todas as cartas estão em anki-card
Como usar:
anki - Arquivo - Importar - Selecione "Coleção Anki Embalada" no formato suspenso, selecione o arquivo que você baixou e confirme.
Para obter mais informações sobre como usar o anki, consulte o site oficial do anki.
Você também pode me adicionar como amigo do WeChat para se comunicar!
10/07/2019: Um pequeno artigo para comemorar o projeto Star rompendo 1W, registrando a "ascensão" do projeto. Se você estiver interessado, pode dar uma olhada. Se você estiver interessado neste projeto, clique em Star . O projeto continuará sendo atualizado . Obrigado pelo apoio de todos.
08/10/2019: Para comemorar o projeto LeetCode, Star rompeu 2W, e a pesquisa no Github por "LeetCode" ficou em primeiro lugar.
12/04/2020: O projeto ultrapassou 30.000 estrelas.
14/04/2020: O site oficial力扣加加
online. Tem explicações especiais, uma pergunta por dia, área de download e solução de vídeo. Mais conteúdo será adicionado no futuro. Endereço: http://leetcode-solution.cn/
Escrevi um guia sobre como enviar soluções
Obrigado a todos os amigos que contribuíram para este projeto
CC BY-NC-ND 4.0