Ordenação Léxica, Caractere Único e Caminho Máximo em Estrutura de Diretórios

1. Números em Ordem Léxica Dado um inteiro n, o objetivo é retornar os números de 1 a n organizados em ordem lexicográfica — ou seja, como se estivessem ordenados como strings. Por exemplo, para n = 13, a sequência correta é [1, 10, 11, 12, 13, 2, 3, ..., 9]. A abordagem direta com comparação de strings seria ineficiente para entradas grandes ( ...

Publicado em 9-13 15:32

Soluções de Backtracking para Endereços IP e Subconjuntos em Python

Restauração de Endereços IP O desafio de restaurar endereços IP consiste em inserir pontos em uma string de dígitos de forma que os segmentos resultantes constituam um endereço IPv4 válido. Cada segmento deve estar entre 0 e 255 e não pode conter zeros à esquerda, a menos que seja o próprio zero. A solução utiliza uma abordagem recursiva (backt ...

Publicado em 8-26 04:10

Template de Solução de Problemas com Listas Encadeadas no LeetCode

Métodos Gerais e Classificação de Problemas 0. Como Percorrer uma Lista Encadeada O código abaixo é um modelo básico de iteração, considerando que o ponteiro head pode ser nulo: Node* atual = cabeca; while (atual != NULL) atual = atual->proximo; Para calcular o comprimento da lista, por exemplo: Node* atual = cabeca; int contador = ...

Publicado em 7-17 18:08

Construção de Arrays e Matrizes de Produto em LeetCode

LeetCode 238: Produto de Array Exceto Próprio Dado um array nums, retorne um array onde cada elemento é o produto de todos os outros elementos, exceto o próprio. Restrições: sem divisão e complexidade O(n). Solução: Divide-se o cálculo em duas partes: Produto prefixo (elementos à esquerda) Produto sufixo (elementos à direita) class Solucao { ...

Publicado em 7-16 21:58

LeetCode 682: Sistema de Pontuação de Beisebol (C++/Java)

O problema 682 do LeetCode simula um rgeistrador de pontos de um jogo de beisebol. Dada uma lista de strings, cada string pode ser um dos seguintes tipos: Número inteiro: Representa diretamente os pontos ganhos na rodada atual. "+": Os pontos da rodada atual são a soma dos pontos das duas últimas rodadas válidas. "D": Os po ...

Publicado em 7-14 10:33

LeetCode 209: Menor Subarray com Soma Maior ou Igual ao Alvo

Enunciado Dado um array nums de n inteiros positivos e um inteiro positivo target, determine o comprimento do menor subarray contínuo cuja soma seja maior ou igual a target. Caso não exista subarray que satisfaça a condição, retorne 0. Exemplo Entrada: target = 7, nums = [2, 3, 1, 2, 4, 3] Saída: 2 Explicação: O subarray [4, 3] atinge a soma 7 ...

Publicado em 7-13 04:09

Verificação de Árvore de Busca Binária Válida

Descrição do Problema Dado o nó raiz de uma árvore binária, determine se ela é uma Árvore de Busca Binária (BST) válida. Definição de BST válida: A subárvore esquerda de um nó contém apenas nós com valores menores que o valor do nó. A subárvore direita de um nó contém apenas nós com valores maiores que o valor do nó. Tanto a subárvore esquerda ...

Publicado em 7-10 20:37

Implementação de Correspondência de Expressões Regulares com Programação Dinâmica

Descrição do Problema Dada uma string s e um padrão p, implemente uma função que verifique correspondência de expressões regulares com suporte a '.' e '*': '.' corresponde a qualquer caractere único '*' corresponde a zero ou mais ocorrências do elemento precedente A correspondência deve abranger toda a string s, não parcial. Abordagem de Solu ...

Publicado em 7-8 02:26

Detecção de Elementos Duplicados em Arrays com C++

A identificação de elementos repetidos em coleções de dados é um problema fundamental em ciência da computação, frequentemente encontrado em desafios de algoritmos como os do LeetCode. Veremos a seguir diferentes estratégias para resolver duas variações desse problema: a detecção simples de duplicatas e a busca por duplicatas dentro de um inter ...

Publicado em 7-5 04:59

Explorando Algoritmos de Backtracking

A técnica de backtracking é uma estratégia algorítmica fundamental, frequentemente utilizada para resolver problemas de otimização e contagem que envolvem a construção incremental de soluções. Conceitualmente, cada busca em profundidade (DFS) pode ser visualizada como a travessia de uma árvore de estados, onde cada nó representa uma escolha par ...

Publicado em 7-4 09:29