Articles of algoritmo

Contando os swaps adjacentes necessários para converter uma permutação em outra

Recebemos duas sequências de letras do alfabeto latino em letras minúsculas. Eles são do mesmo tamanho e têm a mesma quantidade de tipos de letras (o primeiro tem um número igual de t’s como o segundo e assim por diante). Somos obrigados a encontrar o número mínimo de swaps ( por “swap” queremos mudar a […]

encontrar todos os subconjuntos que summ um determinado valor

Dado um conjunto de números: {1, 3, 2, 5, 4, 9}, encontre o número de subconjuntos que summ um valor específico (digamos, 9 para este exemplo). Isso é semelhante ao problema da sum do subconjunto com a pequena diferença de que, em vez de verificar se o conjunto tem um subconjunto que sum 9, precisamos […]

recursion versus iteração

É correto dizer que em toda parte a recursion é usada um loop for poderia ser usado? E se a recursion é geralmente mais lenta, qual é a razão técnica para usá-la na iteração de loop? E se é sempre possível converter uma recursion em um loop for, existe uma maneira prática de fazer isso?

O que é uma boa function hash?

O que é uma boa function Hash? Eu vi um monte de funções hash e aplicativos em meus cursos de estruturas de dados na faculdade, mas eu principalmente tenho que é muito difícil fazer uma boa function de hash. Como regra geral para evitar colisões, meu professor disse que: function Hash(key) return key mod PrimeNumber […]

Encontrando duplicatas no tempo O (n) e no espaço O (1)

Entrada: Dado um array de n elementos que contém elementos de 0 a n-1, com qualquer um desses números aparecendo qualquer número de vezes. Objetivo: Encontrar esses números repetidos em O (n) e usar apenas o espaço de memory constante. Por exemplo, se n for 7 e array for {1, 2, 3, 1, 3, 0, […]

Milhões de pontos 3D: como encontrar os 10 deles mais próximos de um determinado ponto?

Um ponto em 3-d é definido por (x, y, z). Distância d entre quaisquer dois pontos (X, Y, Z) e (x, y, z) é d = Sqrt [(Xx) ^ 2 + (Yy) ^ 2 + (Zz) ^ 2]. Agora há um milhão de inputs em um arquivo, cada input é algum ponto no espaço, em […]

Largura Primeiro Vs Profundidade Primeiro

Quando atravessando uma tree / gráfico Qual é a diferença entre Largura Primeiro e Profundidade primeiro? Qualquer codificação ou exemplo de pseudocódigo seria ótimo.

Algoritmo para gerar uma palavra cruzada

Dada uma lista de palavras, como você faria para organizá-las em uma grade de palavras cruzadas? Não teria que ser como um enigma de palavras cruzadas “adequado” que é simétrico ou qualquer coisa assim: basicamente, basta mostrar uma posição inicial e uma direção para cada palavra. Haveria algum exemplo de Java disponível?

Como os certificados ssl são verificados?

Qual é a série de etapas necessárias para verificar com segurança um certificado SSL? Meu (muito limitado) entendimento é que quando você visita um site https, o servidor envia um certificado para o cliente (o navegador) e o navegador obtém as informações do emissor do certificado desse certificado, então usa isso para contatar o emissor […]

Gerando as partições de um número

Eu precisava de um algoritmo para gerar todas as partições possíveis de um número positivo, e eu criei um (postado como resposta), mas é um tempo exponencial. O algoritmo deve retornar todas as maneiras possíveis pelas quais um número pode ser expresso como a sum de números positivos menores ou iguais a ele mesmo. Então, […]