No video

EXPLICAÇÃO de um DESAFIO TÉCNICO da GOOGLE | First Missing Positive

  Рет қаралды 20,464

Pedro Pessoa

Pedro Pessoa

Күн бұрын

No vídeo de hoje, vamos resolver um desafio técnico de entrevistas da Google! :)
O desafio se chama First Missing Positive e é considerado difícil pelo LeetCode (nível Hard).
Além de explicar, (fazer um tutorial de como resolver), vou mostrar 3 soluções possíveis, e fazer uma análise assintótica de todas elas.
Link das soluções e benchmarks:
github.com/phe...
--------------------------------------------
Não deixe de se inscrever e deixar o like!
Bem vindo ao canal phenpessoa :)
--------------------------------------------
Minhas redes sociais:
✅ github.com/phe...
✅ / phenpessoa
✅ x.com/phenpessoa
✅ / phenpessoa
✅ / phenpessoa
✅ / phenpessoa
✅ / phenpessoa
Contato profissional:
phenpessoayt@gmail.com
--------------------------------------------
#programação #desafio #google

Пікірлер: 100
@lohranrocha
@lohranrocha 8 ай бұрын
É a primeira vez que eu consigo assistir um vídeo complexo e entender pelo menos a linha de raciocínio pra resolvê-lo. Consigo fazê-lo? não! mas só de acompanhar a estrutura de pensamento da até vontade de estudar mais pra chegar nesse nível. Parabéns, bro!
@thisiscleverson
@thisiscleverson 9 ай бұрын
Esse canal era oq faltava no youtube!
@alexalannunes
@alexalannunes 9 ай бұрын
Concordo
@josecarlos-on4re
@josecarlos-on4re 9 ай бұрын
Finalmente um canal de conteúdo com informações diretas, objetiva com tudo que precisamos saber
@anderson.rgomes
@anderson.rgomes 7 ай бұрын
Que canal fantástico, sou desenvolvedor a 15 anos e gostei bastante.
@rodrigolopes284
@rodrigolopes284 9 ай бұрын
Sou um completo noob da programação, fazedor de CRUD e eu fico admirado com a qualidade dos teus vídeos.
@josehelvis674
@josehelvis674 9 ай бұрын
Fazedor de crud kkk, eu também
@TheAbimaelST
@TheAbimaelST 9 ай бұрын
Mais um conteúdo premium! Parabéns mano!
@Lmfenhir
@Lmfenhir 8 ай бұрын
Cara era exatamente o tipo de conteúdo que estava procurando, e ainda com uma didática maior que a dos indianos hahaha, você ta de parabéns.
@vagnerlandio
@vagnerlandio 9 ай бұрын
Teu canal é o que estava faltando nesse KZbin 🎉. O que mais tem no KZbin são canais com cursos de linguagens e framework, react de vídeos e desenvolvimento de soft skills. Você não, você passa conhecimento que vai além de qualquer linguagem. 👏
@lucasaraujo6.
@lucasaraujo6. 8 ай бұрын
O cara é bonito, charmoso e ainda programa em go. Apaixonei!
@Acqua_ff
@Acqua_ff 9 ай бұрын
Humildemente, como um iniciante na programação eu não entendi foi merda nenhuma, mas eu achei muito da hora! Parabéns!
@LuizAzevedown
@LuizAzevedown 9 ай бұрын
Parabéns pelo videio e pela didática! Espero que continue trazendo mais conteúdos desse gênero e em Go...
@marquinhos0550
@marquinhos0550 9 ай бұрын
Por favor, continue com os vídeos de desafios! Teu canal é incrível!
@user-pv3yn8uf6i
@user-pv3yn8uf6i 6 ай бұрын
Primeiro, muito bom o conteúdo, parabéns! Tem como construir uma solução sem o swap também, usando 2 variáveis de controle.
@mandrakememes319
@mandrakememes319 8 ай бұрын
cara parabéns, a didática está bem legal, assim como os canais americanos o ritmo de fala está perfeito.
@italo.magalhaes
@italo.magalhaes 9 ай бұрын
Absurda a qualidade do teu conteúdo, parabéns meu querido
@leandrocesar4000
@leandrocesar4000 9 ай бұрын
Esse canal é incrível muito bom e quando usar termos mais simplificados vai ser de grande ajuda.
@caiocutrim3596
@caiocutrim3596 9 ай бұрын
Cara que conteúdo maneiro, Deus abençoe. Ganhou mais um escrito
@dulii4238
@dulii4238 9 ай бұрын
Irmao seu conteudo e muito top, realmente e muito bom, eu ia te pedir pra voce trazer conteudos de algoritimos involvendo logica sabe assim como esse, mas para as pessoas que sao iniciantes que estao comecando agora, vai ajudar muito cara, meus parabens pelo conteudo
@samuca.prodev
@samuca.prodev 9 ай бұрын
Ei, você dá curso? HAHAHAHA/ Vou assistir mais umas vezes, seu raciocínio é muito rápido, faz sentido mas entender o que você está aplicando e falando ali com clareza vai ser da hora. E mano, parabéns. Continua que isso tá muito bom. E que bom que você se posicionou diferente da maioria, essa pegada de trazer esses desafios é bem interessantes.
@eduardocerutti
@eduardocerutti 9 ай бұрын
Teus videos estão me fazendo gostar de leet code novamente, bom trabalho mestre
@laurolyra
@laurolyra 8 ай бұрын
Acho que foi o primeiro vídeo com altíssima qualidade (técnica e didática) sobre resolução de desafios em português q eu já vi! tá de parabéns, Pedro! Em tempo: é o primeiro vídeo que eu tenho q assistir em velocidade 0,75 hahahahahahahhahaa
@GabrielAlves-nj9or
@GabrielAlves-nj9or 9 ай бұрын
Caralho mano Tu é um gênio, nmrl O conteudo dos seus videos caiu em uma boa hora pra mim, valeu!
@User_0x0000LDMR
@User_0x0000LDMR 8 ай бұрын
Segundo vídeo que vejo do canal e já me inscrevi, ótimo conteúdo
@fabiomartinsbr
@fabiomartinsbr 6 ай бұрын
Parabéns @phenpessoa! Muito legal o canal.
@gustavoandreronconi7555
@gustavoandreronconi7555 9 ай бұрын
e ai Pedro, foi fazer o desafio e fiz de uma forma diferente. package main import "fmt" // challenge // given an unsorted integer array `nums`, return the smallest missing positive integer. // you must implement an algorithm that runs in O(n) and uses O(1) auxiliary space. func firstMissingPositive(nums []int) int { // def the max and min min := nums[0] for i := 0; i < len(nums); i++ { if i == len(nums)-1-i { if nums[i] < min { min = nums[i] } break } if nums[i] < nums[len(nums)-1-i] { if nums[i] < min { min = nums[i] } } else if nums[i] > nums[len(nums)-1-i] { if nums[len(nums)-1-i] < min { min = nums[len(nums)-1-i] } } } firstMissedNumber := min + 1 for i := 0; i < len(nums); i++ { if nums[i] == firstMissedNumber { firstMissedNumber += 1 i = -1 } } fmt.Println(firstMissedNumber) return firstMissedNumber } func main() { nums := []int{ 0, 12, } firstMissingPositive(nums) }
@eziovieira6664
@eziovieira6664 8 ай бұрын
Vai crescer
@gregjfarias
@gregjfarias 6 ай бұрын
caraca, que aula eu to migrando pro go agora e isso foi uma aula foda
@JotaScript
@JotaScript 9 ай бұрын
Cara, faz um vídeo sobre Big O notation. Mostrando o que é e exemplos de códigos!
@phenpessoa
@phenpessoa 8 ай бұрын
Boa ideia!
@cmhanft
@cmhanft 8 ай бұрын
Cliquei em inscrever logo nos primeiros minutos, ótimo conteúdo. Se puder fazer algumas soluções em Python seria bom também Sucesso Pedro.
@DevCearensePeloMundo
@DevCearensePeloMundo 9 ай бұрын
Muito bom, consegui entender todas as soluçôes, bem bacana esse exercício
@caiocesarmelolopes2156
@caiocesarmelolopes2156 8 ай бұрын
Muito bom! Parabéns pelo conteúdo!
@luismerlini
@luismerlini 7 ай бұрын
estou no quarto vídeo do canal, continue mano! ta ótimo!
@phenpessoa
@phenpessoa 7 ай бұрын
Muito obrigado!
@vanio.almeida
@vanio.almeida 8 ай бұрын
Muito bom, ao usar o len() uma única vez melhoraia ainda mais o código, não precisaria verificar o tamanho varias vezes.
@jimmyfernandes634
@jimmyfernandes634 7 ай бұрын
Top demais!
@Thijv
@Thijv 8 ай бұрын
Ótimo conteúdo, parabéns 👏👏👏
@VitorOliveira-br5ts
@VitorOliveira-br5ts 9 ай бұрын
Aguardando por mais conteúdo
@xFlayBR
@xFlayBR 9 ай бұрын
carai mlk, tu é brabo! parabéns!! usando go ainda, top!!!
@medanielsantos
@medanielsantos 9 ай бұрын
Cheguei dando like, já sei que vai ser top, ansioso por um curso seu
@skleon
@skleon 6 ай бұрын
Podendo usar o array inicial como armazenamento, uma solução mais simples é assim: Pega todos os números negativos do array inicial e troca pro tamanho do array (ambos são irrelevantes, mas assim fica sem negativos). E agora que o array não tem mais números negativos, é só aplicar a segunda solução (com o array de booleanos), mas em vez de usar o array de booleanos, vc pode usar o sinal dos números no array fornecido pra contabilizar a presença de cada número.
@marcos-fx4vu
@marcos-fx4vu 5 ай бұрын
ai você está alocando mais memoria oque não pode pois a complexidade do espaço é de O(1)
@igorbatista1735
@igorbatista1735 9 ай бұрын
Cara, conheci teu canal recentemente e estou impressionado com a qualidade dos vídeos, muito bem feito. PS: Não conhecia essa técnica de Swap em Go, poderia mandar alguma referência pra estudo? A sintaxe é um pouco exótica...
@user-hh4bk8gu6y
@user-hh4bk8gu6y 9 ай бұрын
cara nao para essa serie. muito foda, eu tenho que diminuir a velocidade de video sua capacidade de raciocinio eu nao acompanho kkk
@brunocarvalheiro3882
@brunocarvalheiro3882 8 ай бұрын
Oi cara! Vê esta ideia... não sei se faz sentido ! Pega no array de entrada. Marca a medida do array Começa a iterar o array de entrada. Se for o numero 1, elimina essa entrada do array, se não for, coloca um pointer e avança. Verifica se o proximo numero é menor que o pointer, se for, avança o pointer, se não for, avança na iteração. Se for numero 2, elimina. assim até à len do array. Quando uma posição é eliminada e essa posição tem um pointer, o pointer desce uma poisção até ao inicio do array. Quando termina, se o array tiver mais que 1 elemento, e o elemento mais baixo for maior que o len do array, é esse o numero. Se só tiver 1 elemento, e esse elemento for o len do array, é o len do array +1.
@ieieldoria
@ieieldoria 8 ай бұрын
Muito bom!
@danilopereiradeluca9403
@danilopereiradeluca9403 9 ай бұрын
Muito boa explicação!
@MarcosVinicius-jf1mi
@MarcosVinicius-jf1mi 9 ай бұрын
Muito foda, até parece simples a solução
@ewerton.valuecode
@ewerton.valuecode 9 ай бұрын
Showw! Gastou quanto tempo para encontrar esta solução?
@morph.developer
@morph.developer 9 ай бұрын
Video de altissima qualidade, parabens pelo conteúdo.
@lucasemanuelsilva657
@lucasemanuelsilva657 9 ай бұрын
muito bom os seus videos, parabéns!!!
@luizaugusto7763
@luizaugusto7763 9 ай бұрын
Vídeo muito interessante mano!
@victorsoligo1119
@victorsoligo1119 7 ай бұрын
sabe muito
@yago4614
@yago4614 6 ай бұрын
acho que dava para usar a fórmula do somatório tbm, soma todos os elementos relevantes no vetor e subtrai esse valor do somatório até n, a resposta será o número faltante
@gabrielvasconcelos2166
@gabrielvasconcelos2166 9 ай бұрын
O homi é bom
@matheusemanoel4108
@matheusemanoel4108 9 ай бұрын
Que canal bom, sério
@Lanbyteach
@Lanbyteach 9 ай бұрын
Estava pensando em algo interessante para um próximo vídeo, e acho que você pode curtir. A proposta é construir um programa que busca por uma palavra específica em um texto, só que de uma forma um pouco diferente do convencional. Vamos dar uma olhada na representação hexadecimal e decimal da palavra desejada, convertendo-as em caracteres para fazer a busca.
@phenpessoa
@phenpessoa 9 ай бұрын
É uma boa ideia!
@ispobra1240
@ispobra1240 9 ай бұрын
cheguei dando, já sei que vai ser top
@gagunho
@gagunho 9 ай бұрын
Que delicia de video cara!☺
@edwolt
@edwolt 9 ай бұрын
Eu pensei numa solução bem ruim mas que seria O(1) em espaço auxiliar e O(n) em tempo, mas depende de um detalhe que eu não é dito no enunciado, que o inteiro tenha um limite máximo (ser um int de 32 bits, de 64, etc, mas não funcionaria para bigint). O que daria para fazer é instanciar um array com uma posição para cada número possível, com todas as posições valendo false, assim que eu ler um numero eu troco o correspondente no vetor para true. Depois de percorrer todos os numeros, eu percorro o vetor e encontro a primeira posição com false. Essa minha solução é ruim porque apesar de ser O(1) em espaço auxiliar (o tamanho do vetor depende do tipo do inteiro, e não da quantidade de números), já para int32 eu estaria consumindo 4 Gigas de RAM para essa operaçao simple, para int64 nem se fala. e apesar de ser O(n) em tempo, o tempo para percorrer esse vetor auxiliar também é muito grande, mesmo que seja constante. Terminar de assistir o video para descobrir qual é a solução viável para o problema
@Bruno_Moraes2023
@Bruno_Moraes2023 6 ай бұрын
conteúdo premium de graça, ai n tem como sou obrigado a me inscrever
@gledsonrts5257
@gledsonrts5257 6 ай бұрын
eu não sei se e so comigo mas quando ele explica sem o codigo fica mais difícil para mim entender o que ele esta falando, mas quando ele coloca o codigo faz sentido...
@gabrielmendes5993
@gabrielmendes5993 9 ай бұрын
lanca um curso , ensina JS e GO !
@diegobaga
@diegobaga 9 ай бұрын
Excelente!
@HuberthSouza
@HuberthSouza 9 ай бұрын
Conteúdo sensacional
@juliorafael3762
@juliorafael3762 9 ай бұрын
Qualidade demais
@maclaurinrocha2881
@maclaurinrocha2881 9 ай бұрын
Como pode , só deu para ver agora 😢😢😢. Aula top TMJ
@joaosantospereira8345
@joaosantospereira8345 6 ай бұрын
Onde você achou esse problema?
@programandoaos30
@programandoaos30 9 ай бұрын
Como esse tipo de canal tem somente 3k74 inscritos? Qualudade pura!!
@elissonlima2430
@elissonlima2430 6 күн бұрын
Se o input for ordenado é só retornar o último kk Returno array[len(array)-1]; kkk
@auladeviolaogospel-cezarro8606
@auladeviolaogospel-cezarro8606 6 ай бұрын
@victorbiasibetti
@victorbiasibetti 9 ай бұрын
carai, mto bom mesmo!!!
@caiqueribeiro2130
@caiqueribeiro2130 9 ай бұрын
Eu sempre me pergunto como que alguém consegue ter uma solução igual a terceira. Até a segunda eu pensaria, mas essa última eu não ia imaginar nunca 😮
@bebumescuro
@bebumescuro 9 ай бұрын
O nome disso eh experiencia… qualquer um q ja está acostumado com desafios, sabe o q fazer e nao fazer
@ramonportela7048
@ramonportela7048 9 ай бұрын
no caso de funções recursivas o space complexity é O(n) e não O(logn)
@Adams456
@Adams456 9 ай бұрын
Entender o que está acontecendo é fácil, difícil é ter a ideia
@Davisinhogameplay
@Davisinhogameplay 9 ай бұрын
Pouco conhecimento grazadeus
@user-hh4bk8gu6y
@user-hh4bk8gu6y 9 ай бұрын
se tu lancar um curso de logica eu compro
@pedromartinsfalleiros7721
@pedromartinsfalleiros7721 9 ай бұрын
Por que não usar conjunto?
@tiagorafael9872
@tiagorafael9872 9 ай бұрын
Por que só a inserção dos elementos no conjunto já quebraria a regra do O(n). Normalmente a estrutura que implementa um conjunto é algo próximo de uma árvore binária, a inserção e a busca seria O(log n). Somente a inserção de todos os elementos positivos no conjunto já seria O(n log n).
@Dominic_Carioca
@Dominic_Carioca 9 ай бұрын
Amigão, esse teste da google é para exercer qual profissão?
@phenpessoa
@phenpessoa 8 ай бұрын
Engenheiro de software
@BlinderSShortS-wk7tb
@BlinderSShortS-wk7tb 6 ай бұрын
Queria entender tudo isso, mas logo vou tá afiado
@pedecabra3704
@pedecabra3704 9 ай бұрын
👍 🔝
@gutembergdossantoscarvalho1189
@gutembergdossantoscarvalho1189 9 ай бұрын
Eu não entendo nada de programação. Mas teria como usar o case.
@pazfelipe
@pazfelipe 6 ай бұрын
Assistir esse vídeo e declarar a minha burrice em nível astronômico 🤣🤣🤣🤣🤣
@Lanbyteach
@Lanbyteach 9 ай бұрын
Muito estranho usa o len(num). No rust temos que usar uma trait para implementar, Trait é meio que uma interface
@phenpessoa
@phenpessoa 9 ай бұрын
Rust tem uma pezinho mais chegado em OOP, Go vai mais na direção funcional/imperativa. Nesse caso em específico.
@fheonix5
@fheonix5 4 ай бұрын
Eu ate entendi a bagaça mas eu nao faço um desse nivel
@tommyscxtt3833
@tommyscxtt3833 9 ай бұрын
Como acho esses desafios?
@phenpessoa
@phenpessoa 9 ай бұрын
No site leetcode tem vários!
@Dominic_Carioca
@Dominic_Carioca 9 ай бұрын
​@@phenpessoaAmigão, esse teste é oara exercer qualquer profissão?
@rafaelpimentelgomes8878
@rafaelpimentelgomes8878 6 ай бұрын
n entendi nada
@TheMonster1400original
@TheMonster1400original 8 ай бұрын
E eu achava que sabia programar
@Songs_For_Hearts
@Songs_For_Hearts 9 ай бұрын
UMA CRITICA CONSTRUTIVA; NAO PRECISA FALAR TAO RAPIDO; O CONTEUDO EH BOM; ABRACOS;
@mikesantos4707
@mikesantos4707 9 ай бұрын
Sou sênior e programado desde 2021 e não entendi quase nada do vídeo.
@David55293
@David55293 8 ай бұрын
tenho que estudar mais
Coding Was HARD Until I Learned These 5 Things...
8:34
Elsa Scola
Рет қаралды 296 М.
RESOLVENDO um DESAFIO TÉCNICO da NETFLIX
13:23
Pedro Pessoa
Рет қаралды 18 М.
Matching Picture Challenge with Alfredo Larin's family! 👍
00:37
BigSchool
Рет қаралды 49 МЛН
Секрет фокусника! #shorts
00:15
Роман Magic
Рет қаралды 46 МЛН
Nurse's Mission: Bringing Joy to Young Lives #shorts
00:17
Fabiosa Stories
Рет қаралды 6 МЛН
50 BILHÕES DE MENSAGENS POR DIA COM APENAS 32 ENGENHEIROS. COMO?
11:24
COMO DEIXAR O VSCODE MINIMALISTA #vscode #desenvolvedor
10:55
Dev Pedro Dias
Рет қаралды 2,4 М.
O que um DESENVOLVEDOR Júnior TEM que saber?
9:58
Pedro Pessoa
Рет қаралды 20 М.
EXEMPLOS NÃO SÃO DEMONSTRAÇÕES - Ledo Vaccaro
8:22
Principia Mathematica Cortes
Рет қаралды 1,5 МЛН
Olha Que Interessante é o Processo Seletivo no Google
12:21
Filipe Deschamps
Рет қаралды 143 М.
NÃO PESQUISE ISSO NO GOOGLE [+10]
18:15
Felipe Neto
Рет қаралды 13 МЛН
RESOLVENDO DESAFIO DE ALGORITMOS DO GOOGLE
28:09
Fernanda Kipper | Dev
Рет қаралды 33 М.
So You Think You Know Git - FOSDEM 2024
47:00
GitButler
Рет қаралды 1,1 МЛН
O LeetCode que mais cai em entrevista
5:47
Augusto Galego
Рет қаралды 39 М.