Este repositório contém a resolução de vários problemas do LeetCode utilizando algoritmos ambiciosos (greedy). Os algoritmos ambiciosos são uma abordagem eficiente para resolver problemas de otimização, onde uma solução local ótima leva a uma solução global ótima. O foco principal aqui é a aplicação dessa técnica para resolver problemas complexos de forma eficiente, sem a necessidade de explorar todas as possibilidades.
-
Trapping Rain Water II - Nível: Difícil
O problema "Trapping Rain Water II" consiste em calcular o volume total de água que pode ser armazenado em um mapa de elevação bidimensional após uma chuva. Cada célula da matriz representa a altura do terreno, e a água pode ser retida onde a altura dos terrenos ao redor é maior.
-
Wildcard Matching - Nível: Difícil
O problema "Wildcard Matching" consiste em determinar se uma string de entrada s corresponde a um padrão p que contém caracteres curingas: 1. '?' corresponde a qualquer caractere único. 2. '*' corresponde a qualquer sequência de caracteres, incluindo uma sequência vazia. A correspondência deve cobrir toda a string s, ou seja, o padrão precisa casar com todos os caracteres de s.
-
Candy - Nível: Difícil
O problema "Candy" consiste em distribuir o número mínimo de balas a um grupo de n crianças, de acordo com as seguintes regras: 1. Cada criança deve receber pelo menos uma bala. 2. Crianças com uma avaliação maior que seus vizinhos devem receber mais balas que eles. O objetivo é calcular o número mínimo de balas necessárias para distribuir a todas as crianças de forma que as regras sejam atendidas.
Para cada um desses problemas, o código foi implementado em Python e está disponível neste repositório. Você pode executar os scripts diretamente ou adaptá-los conforme necessário para o seu ambiente de desenvolvimento. Cada problema está isolado em um arquivo de script separado, facilitando o teste individual.
Para vizualisar o vídeo explicando o projeto clique AQUI.