Ótimo conteúdo e uma das melhores explicações que já ouvi sobre o problema Knapsack. Já quebrei muito a cabeça para entender algo e resolver ele sozinho, mas esse foi o primeiro vídeo em que a solução ficou totalmente clara para mim. Muito obrigado! Sério mesmo
Entendo a ideia, mas pra esse problema uma solução de força bruta me parece mais intuitiva, com mesma performance (O(n)): pares = 0 impares = 0 For i in range(array): if i%2 = 0: pares +=array[i] else impares +=array[i] return max(pares, impares)
Pelo o que eu entendi, acho que a ideia é seguir aquela constraint de não calcular os adjacentes, sendo assim ele vai pegar o 1, trazendo no contexto de código seria basicamente pegar o índice atual e fazer ele mais o r1(n + r1)
Seria interessante pensar como ficaria isso com números negativos. Mas acho que seria basicamente a mesma coisa, só não poderia iniciar o uma_antes e duas_antes com 0, eu acho
pensei em uma forma diferente de resolver, voce pode criar duas variaveis somaI que tera a soma de todos os valores do array de indicie impar e somaP que tera a soma de todos os valores do array de indicie par começando do 0, após isso so testar qual variável é maior e imprimir
Acho que tem um cenário que sua solução pode falhar, pois não é só simplesmente somar ou incrementar a cada interação, pois pode haver números negativos e se somar sem ver se o resultado do anterior for maior que o atual, pode causar erros em entradas com numeros negativos
Cara não cheguei a testar oq pensei. Mas força bruta nesse caso n seria apenas o(n) ? Pois entendi que existem apenas 2 formas possíveis de roubar todas as casas. Se o primeiro começar sendo roubado, já define a configuração pra o resto, e a outra possibilidade é o primeiro não sendo roubado. Aí nisso seriam 2 iterações, cada uma n/2 vezes. Aí você calcularia a maior soma
Não, pensa na seguinte situação [9, 2, 2, 9], é melhor ele roubar o primeiro, pular os dois do meio e ficar com o ultimo, a ideia do local max, é que ele considera essas situações também pq k-2 e k-1 vão ser iguais.
Me pergunto se um dia vou conseguir ter uma lógica como essa.
Tamo na luta mano, o i.portante é não desistir
Se você estudar e treinar, adquiri essa lógica sim, não é difícil, mas demanda muita dedicação
Com toda certeza é bastante treino e aprender a teoria muito bem
se treina e estuda vai sim, mas n se frustre com seu tempo de evolução, pq cada um tem o seu.
A resposta para seu comentário está no 00:07 do vídeo.
Ótimo conteúdo e uma das melhores explicações que já ouvi sobre o problema Knapsack. Já quebrei muito a cabeça para entender algo e resolver ele sozinho, mas esse foi o primeiro vídeo em que a solução ficou totalmente clara para mim. Muito obrigado! Sério mesmo
Entendo a ideia, mas pra esse problema uma solução de força bruta me parece mais intuitiva, com mesma performance (O(n)):
pares = 0
impares = 0
For i in range(array):
if i%2 = 0:
pares +=array[i]
else
impares +=array[i]
return max(pares, impares)
isso ta errado kkkkkk. se o vetor for [100000 1 1 100000], a resposta seria 200000, mas o seu algoritmo acharia 100001
Porra, o barbeiro te sacaneou hein.
Irmão, seus vídeos são muito bons slk, parabéns
uma dúvida, se fosse [2,7,9,3,1,2], como ele vai saber que é melhor pular o 1 e pegar o 2?
Pelo o que eu entendi, acho que a ideia é seguir aquela constraint de não calcular os adjacentes, sendo assim ele vai pegar o 1, trazendo no contexto de código seria basicamente pegar o índice atual e fazer ele mais o r1(n + r1)
Fala um pouco sobre Árvore k-D (k-Dimensional Tree), principalmente aplicado a dados espaciais (latitude e longitude) por favor
Qual app/site é esse que tu usa pra desenhar/anotar as coisas?
Esse canal é muito bom
Quero fazer um pedido, tem como aumentar o volume na hora da edição? Tá baixo demais
Seria interessante pensar como ficaria isso com números negativos. Mas acho que seria basicamente a mesma coisa, só não poderia iniciar o uma_antes e duas_antes com 0, eu acho
Manda salve vídeo muito bom
Ótimo video, qual app ou site pra fazer essas anotações e explicações, desenhando?
excalidraw
@@notlxzz vlw
brabo demais, qnd sai o proximo desafio?
qual nome desse site que ele usa pra fazer esses free hand ?
onde consigo a descrição do problema em português ?
não entendi nada
KKkkk nem eu
pensei em uma forma diferente de resolver, voce pode criar duas variaveis somaI que tera a soma de todos os valores do array de indicie impar e somaP que tera a soma de todos os valores do array de indicie par começando do 0, após isso so testar qual variável é maior e imprimir
Acho que tem um cenário que sua solução pode falhar, pois não é só simplesmente somar ou incrementar a cada interação, pois pode haver números negativos e se somar sem ver se o resultado do anterior for maior que o atual, pode causar erros em entradas com numeros negativos
Mais videos resolvendo leetcode PFVVVVVV
Cara não cheguei a testar oq pensei. Mas força bruta nesse caso n seria apenas o(n) ? Pois entendi que existem apenas 2 formas possíveis de roubar todas as casas. Se o primeiro começar sendo roubado, já define a configuração pra o resto, e a outra possibilidade é o primeiro não sendo roubado.
Aí nisso seriam 2 iterações, cada uma n/2 vezes.
Aí você calcularia a maior soma
Não, pensa na seguinte situação [9, 2, 2, 9], é melhor ele roubar o primeiro, pular os dois do meio e ficar com o ultimo, a ideia do local max, é que ele considera essas situações também pq k-2 e k-1 vão ser iguais.
cara, que conteúdo excelente !