Quais são os quebra-cabeças padrão perguntados nas entrevistas de programação?
Eu dei muitas entrevistas durante o ano passado, principalmente para o cargo de estagiário de engenharia de software. I'tentarei quebrar as perguntas feitas em duas seções básicas, problemas algorítmicos e quebra-cabeças.
No entanto, a maioria das entrevistas de programação raramente consistem em quebra-cabeças. Quase todas as entrevistas que eu dei foram para empresas "Tier-1" e não me foi perguntado um quebra-cabeça em nenhuma delas. A maioria dos entrevistadores irá perguntar-lhe problemas algorítmicos e às vezes poucos problemas de design.
Puzzles
>
ul>Você joga um jogo onde lhe é permitido 3 rolos de dados. Se em qualquer etapa você decidir terminar o jogo, você recebe o número de moedas igual ao valor do último lançamento de dados. Qual é o número máximo esperado de moedas que você pode obter?Li>Soltar um ovo de um número de piso maior que [matemática]N[/math] de um edifício de 100 pisos irá quebrá-lo. Você tem que encontrar [matemática]N[/math], enquanto minimiza o número de gotas para o pior caso.., se você tem 2 ovos com você.
>/li>##li>Quantos pontos há no globo onde caminhando uma milha para sul, uma milha para leste e uma milha para norte você alcança o lugar onde você começou?
<li>Dado um conjunto de dígitos, encontre a soma de todos os números [matemática]N[/math] dígitos cujos cada dígito pertence a determinado conjunto de dígitos.
>
>>br> Problemas Algorítmicos
>
>ul>Enconhe se um número está presente em uma matriz ordenada que foi girada circularmente.<Dê uma sequência, descubra se a sua travessia pré-ordenada de uma árvore de busca binária válida.Dê uma matriz [matemática]N*M[/math] de números de [matemática]1[/math] a [matemática]N*M[/math](cada número ocorre apenas uma vez), descubra lexico-graficamente o menor caminho de cima esquerda para baixo enquanto se move apenas para a direita ou para baixo.Dado um float [matemática]N[/math], encontre [matemática]\sqrt{N}[/math].Dado um conjunto de denominações, encontre o número mínimo de moedas necessárias para formar uma soma. Uma moeda de qualquer denominação pode ser usada em vários tipos.Dado conjunto de denominações, encontre o número mínimo de denominações distintas necessárias para formar uma soma. Uma moeda de qualquer denominação pode ser usada em vários tipos.Dados balões [matemática]N[/math], se você estourar balões [matemática]i^{th}[/math] você recebe moedas [matemática]A_{i-1}*A_i*A_{i+1}[/math] e depois balões [matemática]i^{th}[/math] e [matemática](i+1)^{th}[/math] tornam-se adjacentes. Encontre o número máximo de moedas que você pode juntar.Dado uma string [matemática]S[/math] e um conjunto de caracteres, encontre a menor janela em [matemática]S[/math] que contém um determinado conjunto de caracteres.Dado um array não selecionado onde cada elemento está no máximo à distância [matemática]K[/math] de sua posição correta(i.e. posição em array ordenado), ordene o array.Dado uma árvore binária, verifique se é uma árvore de busca binária.Deve encontrar o número de componentes conectados em preto e branco em uma matriz em preto e branco. Outra versão é se a matriz é tridimensional.Li>Seta uma matriz armazenada em uma fita, onde existe no ponteiro que aponta para um elemento em um índice e as operações permitidas no ponteiro são lidas, escritas, adiantadas, vão para o início. Você tem 5 fitas vazias, cada uma do tamanho 100 que você pode usar.Dados [matemática]N[/math] arrays ordenados, encontre o [matemática]K^{th}[/math] menor elemento se todos os arrays forem fundidos.Você tem 4 cordas, você pode reorganizá-las da forma que quiser. Você tem que maximizar o prefixo mais longo comum de todas as 4 cordas após o rearranjo.Existem pontos [matemática]N[/matéria] no plano 2-D. Cada ponto tem uma cor R, B, G. Encontre um triângulo de área maior com estes pontos de forma que um dos lados do triângulo seja paralelo a qualquer um dos eixos e cada vértice tenha um ponto de cor diferente. Encontrar trigêmeos num dado array que somam a zero.Uma string como a2b3c5 não comprime a aabbbccccc. Comprime uma determinada string.Clonar uma lista ligada.Clonar um gráfico dado em forma de lista adjacente.Reverse uma lista ligada.>li>Dado um programa python determina a linha na qual um erro de compilação devido a indentação ocorre.Dado um dicionário e várias consultas de strings, para cada consulta retorna as strings presentes no dicionário anagrâmico para a string da consulta.>li>Li>Encontrar a mediana de um fluxo contínuo de inteiros cada vez que um novo número é adicionado ao fluxo.>p>>br>Even embora eu pudesse ter resolvido cada um deles, eu chupei em alguns deles nas minhas entrevistas e não consegui'não consegui através de nenhuma empresa estrangeira. De todas as empresas indianas às quais me candidatei, eu limpei todos os seus processos de entrevista, no entanto.
suponho que seu motivo por trás de fazer esta pergunta possa estar se preparando para entrevistas técnicas e mesmo que eu tenha respondido à pergunta, eu não'não me importo em dar-lhe alguns conselhos não solicitados. Sua abordagem atual deve ser algo como visitar websites como glassdoor, geeksforgeeks etc. e resolver através de problemas e quebra-cabeças ou provavelmente ir aleatoriamente através de blogs espalhados por toda a internet. Há muito pouca estrutura para o conteúdo que você está se preparando desta forma.
Considerando o cenário, um dos meus seniors começou o InterviewBit.com. Todo o conteúdo é bem estruturado; você'vai sentir como se tivesse um treinador pessoal. Há várias características que você pode ouvir do próprio co-fundador. Anshuman Singh'a resposta de Anshuman Singh'Como posso conseguir um emprego no Facebook ou Google em 6 meses? Eu preciso de um plano de trabalho conciso para construir um conjunto de habilidades suficientemente bom. Devo me juntar a algum outro start-up ou construir meus próprios projetos/continuação? Devo apenas focar na prática de estruturas de dados e algoritmos?