algo-básico
Para permitir que todos leiam melhor artigos técnicos de alta qualidade, como algoritmos e noções básicas de informática (incluindo redes de computadores, sistemas operacionais, MySQL, etc.), organizei esses artigos em um PDF com um índice de alta definição. Porém, para a comodidade de corrigir erros posteriormente e adicionar novo conteúdo, existe este Github.
Portanto, este Github compartilhará artigos sobre estruturas de dados, algoritmos, noções básicas de informática, minha experiência de aprendizado, etc. Esteja você lidando com entrevistas, especialmente recrutamento escolar, ou queira melhorar suas habilidades internas , acho que esses meus artigos irão. ser útil para você. Esses artigos são basicamente atualizados aqui depois de receber elogios consistentes das principais plataformas de blog.
Além disso, se for útil depois de ler o artigo, Shuaidi gostaria de pedir que me fizesse um favor e me desse uma estrela para satisfazer minha vaidade. Se houver mais estrelas, talvez eu tenha a oportunidade de fazer uma captura de tela e. mande para Moments, fingindo ser B, hee hee.
Finalmente, se você quiser ler a versão PDF ou epub do e-book, você pode acessar minha conta pública do WeChat Shuai Di Wan Programming e responder ao treinamento de força interna do programador , e você pode obter a versão PDF/epub do e-book compilado por todos os artigos com um índice de livros em alta definição, você pode simplesmente digitalizá-los e acompanhá-los.
Índice
- algoritmo de aprendizagem
- Compartilhamento de experiência de algoritmo de aprendizagem
- Aprenda recursão
- Aprenda programação dinâmica
- Aprenda pesquisa binária
- Reproduzir a cena da entrevista do algoritmo de recrutamento no campus
- Aprenda algoritmos de correspondência de strings
- Deve aprender pensamento e habilidades algorítmicas
- Deve aprender algoritmo de classificação
- Obtenha uma árvore binária
- Obtenha a lista vinculada
- Aprenda estruturas de dados
- Aprenda Rede de Computadores
- Resumo da experiência escrito para alunos atuais
- Experiências e reflexões pessoais
- Aprenda o sistema operacional
- MySQL
- Java
- Git
- Recomendações de livros de alta qualidade que li
- Seguir
- Apreciar
algoritmo de aprendizagem
Compartilhamento de experiência de algoritmo de aprendizagem
- Quais algoritmos os programadores devem dominar?
- Como novato, como devo aprender algoritmos?
- Depois de completar 500 questões sobre leetcode, é seguro passar no teste escrito/entrevista?
Aprenda recursão
- Por que você não pode aprender recursão? Diga adeus à recursão e fale sobre algumas das minhas experiências
- Treinamento 1: Encontre a mediana superior em duas matrizes classificadas de igual comprimento
- Treinamento 2: Encontre o K-ésimo decimal de duas matrizes ordenadas
- Treinamento 3: Encontre a mediana de duas matrizes ordenadas (sobre a importância da transformação do pensamento)
Aprenda programação dinâmica
- A programação dinâmica é difícil? Depois de responder 40 perguntas em DP, resumi essas rotinas!
- Otimização da programação dinâmica
- Treinamento 1: Explicação detalhada de três problemas de algoritmo de programação dinâmica unidimensional
- Treinamento 2: Explicação detalhada da questão leetcode221: Quadrado máximo
Aprenda pesquisa binária
- Tem certeza de que pode fazer pesquisa binária? Pode ser usado para criar golpes na vida?
- Duas questões de algoritmo aparentemente simples
- Resumo das questões de dicotomia
Reproduzir a cena da entrevista do algoritmo de recrutamento no campus
- Lembre-se de uma pergunta da entrevista do algoritmo ByteDance: reversão de lista vinculada deformada
- Lembre-se de uma entrevista com um algoritmo destruído à mão: o entrevistador da ByteDance me bateu quatro vezes seguidas
- Uma pergunta de teste escrita do Alibaba: Como resolvi o problema do anel Joseph com uma linha de código
- Lembre-se de uma entrevista com o Alibaba: a entrevista focou no design do algoritmo de cache LRU
- A aplicação da soma do prefixo começa com uma pergunta de teste escrita do NetEase
- Abuso de entrevista: lembre-se de uma pergunta da entrevista do algoritmo do shopee: a solução ideal da pilha mínima
- Abuso de entrevista: Como é implementada a filtragem de palavras sensíveis no jogo?
- Encontre o número mais frequente entre 2 bilhões, 4 bilhões, 8 bilhões de números inteiros usando apenas 2 GB de memória
Aprenda algoritmos de correspondência de strings
- Algoritmo KMP de correspondência de string gráfica
- Algoritmo Boyer-Moore de correspondência de strings: como a função de pesquisa é implementada em editores de texto?
Deve aprender pensamento e habilidades algorítmicas
- Esforçando-se pelo máximo: como faço para transformar questões de algoritmo de nível fácil em questões de nível difícil?
- Compartilhe um problema algorítmico com uma solução inteligente
- Fatorial é simples? Para ser honesto, você pode não entender necessariamente essas perguntas da entrevista relacionadas aos fatores!
- Entrevistador, por favor, não me faça perguntas tão simples, mas difíceis, sobre algoritmos.
- Incrível! Uma linha de código pode realmente resolver muitos problemas de algoritmo que me incomodam há muito tempo.
- Shuaidi resumiu esta técnica de resolução de problemas de algoritmo de alta frequência para ajudá-lo a resolver problemas mais rapidamente!
- Quais são os truques nas estruturas de dados algorítmicas?
- Um guia para fingir ser um pouco experiente
- Encontre inteiros ausentes
Deve aprender algoritmo de classificação
- Quadrinhos: Por favor, não me pergunte sobre classificação rápida novamente
- Quadrinhos: Por que a classificação radix de complexidade O(n) não é tão rápida quanto a classificação rápida?
- Quadrinhos: Classificação externa: como classificar 2 bilhões de números inteiros usando 2 GB de memória? (Na verdade, esta também é uma pergunta comum em entrevistas)
- Pare de rolar, os programadores devem aprender os dez principais algoritmos de classificação clássicos, basta ler este artigo
Obtenha uma árvore binária
- Travessia de pré-encomenda de árvores binárias (versão não recursiva)
- Travessia inorder de uma árvore binária (versão não recursiva)
- Travessia pós-ordem de árvores binárias (versão não recursiva)
- Imprima a árvore binária de cima para baixo
- Construção de árvore binária
- Espelho da árvore binária
- subestrutura da árvore binária
- Sequência de travessia pós-ordem da árvore de pesquisa binária
- Reconstrua uma árvore binária
Obtenha a lista vinculada
- Treinamento de lista vinculada 1: Exclua o nó K de uma lista vinculada individualmente
- Treinamento de lista vinculada 2: Exclua o nó intermediário de uma lista vinculada individualmente
- Treinamento de lista vinculada 3: como reverter uma lista vinculada individualmente normalmente
- Treinamento de lista vinculada 4: Problema de Joseph da lista circular simples
- Treinamento de lista vinculada 5: três métodos o ajudarão a julgar listas vinculadas palindrômicas com elegância
- Treinamento de lista vinculada 6: Divida a lista vinculada unilateral de acordo com um determinado valor na forma de pequeno à esquerda, igual no meio e grande à direita
- Treinamento de lista vinculada 7: copie uma lista vinculada contendo nós ponteiros aleatórios
- Treinamento de lista vinculada 8: Inverta a ordem entre cada K nós da lista vinculada individualmente
- Treinamento de lista vinculada 9: Converta a árvore binária de pesquisa em uma lista duplamente vinculada
Aprenda estruturas de dados
- O que diabos é uma pilha binária?
- O que diabos é tipo de heap?
- Quadrinhos: O que é uma árvore AVL?
- Pergunta da entrevista da Tencent: Com árvores de busca binária, por que as árvores balanceadas precisam de árvores rubro-negras?
- Entrevista de alta frequência: O que é uma árvore B? Por que os índices de arquivos usam árvores B em vez de árvores binárias de pesquisa?
- No futuro, se um entrevistador lhe perguntar sobre a tabela de salto, jogue este artigo para ele.
Aprenda Rede de Computadores
- Entenda como um computador envia dados para outro computador em um artigo
- Conversa aleatória: O que é https? Este deve ser o melhor artigo de toda a Internet sobre https.
- Ilustração: Como um host completamente estranho conseguiu a entrega correta de dados por dois dias?
- O que é uma assinatura digital
- O que é controle de congestionamento?
- O que é controle de fluxo TCP
- Qual é o algoritmo de roteamento de transmissão? Como resolver a tempestade de transmissão?
- O que o entrevistador quer nos testar sobre o aperto de mão triplo e a onda quadridirecional?
- De onde veio o IP do computador? ainda não configurei
- A diferença entre comutação de circuitos e comutação de pacotes
Resumo da experiência escrito para alunos atuais
- Estudei programação por quatro anos e recomendo essas ferramentas, sites e materiais de aprendizagem de alta qualidade para você.
- Depois de muito pensar nisso, este é um percurso de aprendizagem adequado ao público em geral.
- Compilação básica: Aqueles conhecimentos básicos de informática que vão te fazer decolar: o que aprender e como aprender?
- Bem, falhei em duas entrevistas com a Tencent no recrutamento da primavera. Deixe-me compartilhar minha experiência de entrevista fracassada e boba.
- Após dois meses de recrutamento no outono, vamos falar sobre alguns pontos de conhecimento importantes no recrutamento na primavera e no outono.
- É preciso falar sobre o recrutamento da próxima primavera (experiência + importância + como se preparar)
- Conte-me sobre os projetos em que trabalhou durante o período de recrutamento de primavera e outono e recomende alguns projetos + vídeos de entrevistas
Experiências e reflexões pessoais
- O recrutamento de outono acabou, são apenas três anos normais de faculdade para mim
- Nos últimos 15 meses escrevendo um relato público, o que aprendi e ganhei ao longo do caminho?
- Meu 2019
- Há mais de um ano desde que comecei a escrever artigos sobre contas públicas, fui perseguido, bloqueado e elogiado.
- O primeiro artigo original em 2020: Como posso me tornar melhor
- Deixe-me falar sobre minha vida diária recente, estudo e pensamento
Aprenda sistema operacional
Esta parte do artigo é um pouco esparsa e será adicionada gradualmente mais tarde, portanto, fique atento.
- Lembre-se de uma entrevista: Quais são os métodos de comunicação entre processos? Como se comunicar?
MySQL
- Entrevista Tencent: Quais são as razões pelas quais uma instrução SQL é executada lentamente?
- Dicas para entrevista: relacionado ao índice MySQL
- Deixe-me ir, esses dois pequenos truques não apenas permitiram que minhas instruções SQL evitassem armadilhas, mas também as melhoraram 1000 vezes.
Java
- Segurança do thread (Parte 1): entenda completamente a palavra-chave volátil
- Segurança de thread (Parte 2): Entenda completamente o sincronizado (de bloqueios tendenciosos a bloqueios pesados)
- Em uma frase, aprenda vários bloqueios, como bloqueios pesados, bloqueios giratórios, bloqueios leves, bloqueios tendenciosos, bloqueios pessimistas e bloqueios otimistas.
- O núcleo da simultaneidade: o que é CAS? Como o Java8 otimiza o CAS?
- Você não tem coragem de aprender as classes de sincronização mais importantes do pacote de simultaneidade Java?
- Padronize seu estilo de codificação
Git
- Recentemente aprendi o Git do zero e resumi este guia de comando do Git
Recomendações de livros de alta qualidade que li
- Livros recomendados de alta qualidade que li durante meus quatro anos de faculdade
- Que livros vale a pena ler sobre algoritmos e noções básicas de informática?
Seguir
Espero que este e-book seja útil para você. Se todos responderem bem, continuarei adicionando conteúdo mais tarde. Esta é atualmente uma versão preliminar e pode ter muitas deficiências, como erros de digitação e redação incorreta de certos pontos de conhecimento. Se você tiver alguma dúvida, pode me encontrar através da minha conta oficial. Você pode deixar uma mensagem na minha conta oficial ou adicionar meu WeChat pessoal diretamente.
Apreciar
Não é fácil organizar e-books. Se você achar útil e quiser recompensar o autor, pode me recompensar através deste código de pagamento. O valor não é importante, mas a sua intenção é o mais importante. Posso usar esse status de recompensa. Espero que todos comentem esse e-book, hehe.
Observação: você pode anotar seu apelido ao fazer um pagamento. Pode ser CSDN, WeChat, GitHub, etc.