Articles of algoritmos

Gere todas as combinações de várias listas

Dada uma quantidade desconhecida de listas, cada uma com um tamanho desconhecido, preciso gerar uma lista única com todas as combinações únicas possíveis. Por exemplo, dadas as seguintes listas: X: [A, B, C] Y: [W, X, Y, Z] Então eu deveria ser capaz de gerar 12 combinações: [AW, AX, AY, AZ, BW, BX, BY, BZ, […]

Calculando todos os subconjuntos de um conjunto de números

Eu quero encontrar os subconjuntos de um conjunto de inteiros. É o primeiro passo do algoritmo “Soma dos Subconjuntos” com backtracking. Eu escrevi o seguinte código, mas ele não retorna a resposta correta: BTSum(0, nums); ///************** ArrayList list = new ArrayList(); public static ArrayList BTSum(int n, ArrayList numbers) { if (n == numbers.size()) { for […]

Encontre o menor elemento kth em uma tree de pesquisa binária na melhor maneira

Eu preciso encontrar o kth menor elemento na tree de pesquisa binária sem usar qualquer variável estática / global. Como alcançá-lo com eficiência? A solução que tenho em mente é fazer a operação em O (n), o pior caso desde que estou planejando fazer uma travessia dentro da tree inteira. Mas no fundo eu sinto […]

Algoritmo de interseção de lista eficiente

Dadas duas listas (não necessariamente classificadas), qual é o algoritmo não-recursivo mais eficiente para encontrar a interseção dessas listas?

Gerando combinações em c ++

Eu tenho procurado um código-fonte para gerar combinação usando c + +. Eu encontrei alguns códigos avançados para isso, mas isso é bom para apenas um número específico de dados predefinidos. Alguém pode me dar algumas dicas, ou talvez, alguma idéia para gerar combinação. Como exemplo, suponha que o conjunto S = {1, 2, 3, […]

Algoritmos de permutação rápida -> número -> mapeamento de permutação

Eu tenho n elementos. Por exemplo, digamos, 7 elementos, 1234567. Sei que existem 7! = 5040 permutações possíveis destes 7 elementos. Eu quero um algoritmo rápido composto por duas funções: f (número) mapeia um número entre 0 e 5039 para uma permutação única e f ‘(permutação) mapeia a permutação de volta para o número de […]

Algoritmo para gerar todas as permutações possíveis de uma lista?

Digamos que eu tenha uma lista de n elementos, eu sei que existem n! possíveis maneiras de solicitar esses elementos. O que é um algoritmo para gerar todos os pedidos possíveis dessa lista? Exemplo, eu tenho lista [a, b, c]. O algoritmo retornaria [[a, b, c], [a, c, b,], [b, a, c], [b, c, a], […]

Como pesquiso um número em uma matriz 2D classificada da esquerda para a direita e de cima para baixo?

Recentemente, recebi esta pergunta da entrevista e estou curioso para saber se seria uma boa solução. Digamos que eu receba uma matriz 2d onde todos os números na matriz estão em ordem crescente da esquerda para a direita e de cima para baixo. Qual é a melhor maneira de pesquisar e determinar se um número […]

Algoritmo: maneira eficiente de remover inteiros duplicados de um array

Eu tenho esse problema de uma entrevista com a Microsoft. Dado um array de números inteiros randoms, escreva um algoritmo em C que remova números duplicados e retorne os números únicos no array original. Por exemplo: Entrada: {4, 8, 4, 1, 1, 2, 9} Saída: {4, 8, 1, 2, 9, ?, ?} Uma ressalva é […]

Algoritmo para selecionar uma combinação única e aleatória de valores?

Digamos que eu tenha valores distintos e quero selecionar x deles aleatoriamente. O que é um algoritmo eficiente para fazer isso? Eu poderia simplesmente chamar rand() x times, mas o desempenho seria ruim se x , y fosse grande. Note que são necessárias combinações aqui: cada valor deve ter a mesma probabilidade de ser selecionado, […]