Análise de Tráfego Marítimo: Contagem de Nacionalidades em Janelas de Tempo
Este problema aborda a necessidade de processar informações de chegada de navios a um porto, focando na diversidade de nacionalidades dos passageiros dentro de uma janela de tempo específica. Para cada navio que chega, é preciso determinar quantas nacionalidades distintas de passageiros foram representadas nos navios que chegaram nas últimas 24 ...
Publicado em 6-11 21:21
Encontrando Combinações em Coleções Java com Abordagem Bits e Recursão
Este artigo demosntra duas técnicas para encontrar combinações em coleeções Java: uma abordagem baseada em bits e uma solução recursiva.
Abordagem Baseada em Bits
A primeira implementação utiliza um padrão de bits para representar combinações. Cada elemento na coleção corresponde a um bit em um array. Quando o bit está ativo (1), o elemento é i ...
Publicado em 6-11 06:50
Resolução de Problemas da PTA – Conjunto 1 (C++)
Problema 1 – Caracteres distintos
Problema 2 – Comparação de bits
Problema 3 – K-ésimo menor distinto
Problema 4 – Desarranjos
Problema 5 – Tempo de espera
Problema 6 – Ponto crítico (Union-Find)
Problema 7 – Conectividade em grade
Problema 8 – Mediana das cooordenadas
Problema 9 – Soma dos divisores
Problema 10 – Caminho crescente mais longo
P ...
Publicado em 6-11 05:47
Otimização de Problemas de Mochila usando Programação Dinâmica
Mochila 0/1 (0/1 Knapsack)
O problema da Mochila 0/1 restringe a seleção de cada item a, no máximo, uma única vez. Embora possa ser resolvido utilizando uma matriz bidimensional para rastrear os estados, é possível otimizar o consumo de memória reduzindo a estrutura para um array unidimensional.
A chave para a otimização unidimensional reside n ...
Publicado em 6-11 01:19
Exercícios Práticos de Programação em C
Exercício 1
Clique para ver o código
#include <stdio.h>
#define TAM 4
#define LINHAS 2
void demonstracao_vetor() {
int valores[TAM] = {5, 2, 7, 3};
int contador;
printf("Tamanho em bytes do vetor: %lu\n", sizeof(valores));
for (contador = 0; contador < TAM; contador++)
printf("Endereço %p: valo ...
Publicado em 6-10 05:40
Aplicações de Pilhas em Algoritmos com JavaScript
Uso de Pilhas para Resolver Problemas Comuns
Algumas situações são naturalmente adequadas para implementação com pilhas. Esta seção explora três exemplos práticos que demonstram a utilidade dessa estrutura de dados em algoritmos com JavaScript.
1. Conversão entre Bases Numéricas
Uma pilha pode ser empregada para converter números entre diferent ...
Publicado em 6-10 05:25
Detecção de Ciclos em Listas Ligadas
Hoje vamos explorar um problema clássico em estruturas de dados: identificar a existência de ciclos em listas ligadas e determinar o ponto de início desses ciclos.
Existem duas abordagens principais para resolver este desafio: uma utilizando um algoritmo matemático conhecido como algoritmo de Floyd (também chamado de "tartaruga e lebre&quo ...
Publicado em 6-10 05:12
Explorando Algoritmos da STL para Manipulação de Sequências
Algoritmos Não Modificadores de Sequência
Estes algoritmos operam sobre sequências sem alterar seus elementos.
1.1 find e find\_if
find(inicio, fim, valor): Busca a primeira ocorrência de valor na faixa [inicio, fim) e retorna um iterador para ela. Retorna fim se o valor não for encontrado.
find_if(inicio, fim, predicado): Busca o primeiro ...
Publicado em 6-10 04:53
Implementações de Funções Fundamentais e Estruturas de Dados Essenciais em C++
Implementações Comuns de Interfaces
A seguir, exploraremos a reimplementação de algumas funções de interface padrão e componentes de classes, focando em suas lógicas subjacentes e desafios, como tratamento de overflow e gerenciamento de memória.
Função converterStringParaInteiro (Equivalente a atoi)
Esta função converte uma string em um inteiro ...
Publicado em 6-8 21:20
Análise dos Problemas do AtCoder Beginner Contest 371
Análise dos Prbolemas do AtCoder Beginner Contest 371
Este artigo explora as soluções técnicas dos problemas do AtCoder Beginner Contest 371, com foco em algoritmos e estruturas de dados.
Problema A
O Problema A envolve determinar o segundo maior entre três indivíduos, A, B e C, com base em desigualdades fornecidas. A abordagem eficiente consis ...
Publicado em 6-8 01:14