O LeetCode que mais cai em entrevista

Поділитися
Вставка
  • Опубліковано 25 жов 2024

КОМЕНТАРІ • 92

  • @thiagomatu
    @thiagomatu 8 місяців тому +45

    Conteúdo top Augusto, caramba, que massa encontrar alguém que ajude a comunidade dessa maneira por aqui no YT!

    • @dedemulambo
      @dedemulambo 6 місяців тому +3

      No Brasil né, realmente excelente o conteúdo. A altura do da gringa

    • @ernestofamorim
      @ernestofamorim 6 місяців тому +2

      ​​@@dedemulamboverdade demais isso aí. O conteudo aqui do Brasil geralmente são coisas muito básicas ou cara tentando vender curso.

    • @williamrosa8577
      @williamrosa8577 6 місяців тому

      ​@@dedemulambo Tem recomendações de canais gringos que fazem esse tipo de conteúdo?

    • @dedemulambo
      @dedemulambo 6 місяців тому +1

      @@williamrosa8577
      Canais focados em problemas algoritmicos como esse aqui tem o NeetCode e o Colin Galen (o galen é focado em programação competitiva então é um nivel bem mais avançado de problemas)
      Canais excelentes sobre matemática e problemas algoritmicos no geral:
      3blue1brown
      Numberphile

    • @williamrosa8577
      @williamrosa8577 6 місяців тому

      @@dedemulambo Obrigado!

  • @MrYre
    @MrYre 6 місяців тому +108

    não sei se ficou tão claro que um dicionário implementa um hash map **por padrão**.
    Então quando vc usa um .get(), ele nao percorre o dicionário inteiro procurando o valor, ele gera o hash do item buscado, e consegue responder em O(1) se está lá ou não.
    Talvez por isso tenha ficado um pouco confuso para algumas pessoas.
    A simplicidade da linguagem utilizada acabou deixando um descompasso entre a explicação e o código.
    Não queria desmerecer o vídeo nem nada, ficou incrível, mas achei que um pessoal tivesse ficado perdido por conta disso e achei importante explicar!

    • @davifariasp
      @davifariasp 6 місяців тому +10

      Concordo! Seria bacana se ele tivesse proposto solução sem usar métodos da linguagem. Mas acho que sem querer ele deixou essa pra gente mesmo resolver kkkk

  • @leoodev
    @leoodev 6 місяців тому +17

    to começando a estudar DSA após negligenciar por muito tempo durante minha carreira, já havia resolvido o two sum de maneira super fácil com a solução 1, mas é muito massa encontrar conteúdo como o seu explicando resolução desses problemas do leetcode de maneira otimizada e mostrando a aplicabilidade dos algoritmos e estruturas de dados apropriados

  • @edfell66
    @edfell66 6 місяців тому +17

    Caraca, essa solução 3 é bem fora da caixinha pra mim. Estou um pouco enferrujado nesse tipo de algoritmo no dia a dia. Vou começar a praticar no Leetcode

    • @gafbrasil
      @gafbrasil 21 день тому

      pois é.... Preciso também

  • @arturcamposcamara6772
    @arturcamposcamara6772 6 місяців тому +20

    Super simples -> demorei 2 semanas para fazer e ainda tive que ver tutorial de indiano na net

    • @magichatake
      @magichatake 6 місяців тому

      kkkk tbm to nessas mano... e olha q to há 8 anos já na area, essas coisas de algoritmo sempre me pegam

    • @alexandrecastro9528
      @alexandrecastro9528 2 місяці тому +2

      Só um indiano fez isso sem consultar outro indiano

    • @gabrielsilveira2230
      @gabrielsilveira2230 Місяць тому +3

      @@magichatake te dizer que esse relato tirou um pouco de peso na minha consciência, estava me sentindo um merda porque não fazia a mínima ideia de como resolver isso

  • @Xdetonando
    @Xdetonando 6 місяців тому +43

    A segunda solução tem um problema, quando você dá um sort no array, você modifica os indices dos elementos dele, o que acaba inutilizando o algoritmo por que a resposta vai dar os indices incorretos.

    • @leonardomiguel1943
      @leonardomiguel1943 3 місяці тому +13

      Você pode manter o vetor original inalterado e criar uma cópia ordenada dele para fazer a busca. Depois basta procurar a posição dos elementos da solução no vetor original (o que mantém a complexidade temporal de nlogn). Problema disso: armazenamento de 2n elementos na memória.

    • @kyori_kyo
      @kyori_kyo 2 місяці тому

      Da pra achar o valor
      Vc normalmente reatribui o nums.sort pra uma nova var
      Ou usa ele já em um loop
      De qualquer forma, você consegue buscar o índice na lista de vários jeitos
      O problema é que
      Aumenta a complexidade o que na minha opinião faria ela a pior solução

    • @mateus2075
      @mateus2075 Місяць тому

      ​@@leonardomiguel1943mas a hash dele tbm faz isso. Cria uma copia (ate maior, pq armazena chave e valor) do "banco de dados" na memória (pensando num cenário com muito mais dados)

    • @gabrielcarvalho9156
      @gabrielcarvalho9156 Місяць тому

      @@leonardomiguel1943 o problema é que pra vc procurar a posição dos elementos no array original seria O(n), não? pq se o array não esta ordenado, não teria como fazer uma busca binaria, por ex.

    • @leonardomiguel1943
      @leonardomiguel1943 Місяць тому

      @@gabrielcarvalho9156 não pensei muito à fundo mas a princípio, O(n) é bom. Essa busca não aumentaria a complexidade. Buscar cada um poderia gerar um trabalhinho a mais, mas em termos de complexidade se manteria O(nlogn)

  • @porcariasposttada
    @porcariasposttada 3 місяці тому +1

    Fui inventar de fazer esse exercício dps de ver esse vídeo, continueo com dificuldade e tive que ver denovo KASOEKOASKOEKOASEKOASOK
    programar é uma das coisas existentes

  • @paulos.9537
    @paulos.9537 9 місяців тому +2

    Cara, obrigado por dedicar um tempo a nos explicar isso!

  • @tiago5189
    @tiago5189 23 дні тому

    Vi o vídeo duas vezes e não consegui entender essa última solução, só sei que é genial

  • @lucasvillani5484
    @lucasvillani5484 6 місяців тому +4

    Eu pensei na última solução, por causa do x + y = 9, e o x = 9 - y.
    Entretanto, usei o try para tentar acessar o index da lista, arr.index(x), invés de armazenar tudo em um dicionário.
    Problema bem legal, que o conhecimento mais básico em sistemas lineares já dá uma ajuda.

  • @sDaviVieira
    @sDaviVieira 9 місяців тому +3

    Augusto, quando que você vai lançar seu curso de Estrutura de Dados? Você é brabo!

  • @dimitri8520
    @dimitri8520 28 днів тому

    Gostei, continua com este projeto. Ou se não puder, sabe de algum material assim que explica os padrões de como fazer? Mas prefiro só a primeira parte do vídeo que ensina como fazer, a parte da resolução eu prefiro não olhar, pois quero fazer por conta própria! Obrigado!

  • @Sniper-gc4mf
    @Sniper-gc4mf 9 місяців тому +2

    Parabéns pelo seu conteúdo 👏👏👏👏
    Obrigado por nós compartilhar

  • @matheusrocco3747
    @matheusrocco3747 Місяць тому

    Um adendo: em uma entrevista, não precisa se preocupar com “não implementar” a primeira solução por não ser otimizada. O importante é primeiro resolver o problema, depois pensar em otimizar. Muitos candidatos acabam se preocupando em não fazer um solução “dumb” e fica travado, não conseguindo resolver nada. Então minha dica é: resolve o simples e depois itera 👍

  • @gafbrasil
    @gafbrasil 21 день тому

    Fiz algo parecido com a solução 2:
    Ordenei com o sort() e eu fiz apenas um ponteiro que percorre ela apenas uma vez(somando apenas com o valor 0 da lista)

  • @Jessicalewinter
    @Jessicalewinter 6 місяців тому +1

    Se o array já tiver ordenado a melhor solução é o two pointers. Mas com o array não ordenado, a melhor solução realmente é com hash map. Muito boa sua explicação 🎉

  • @jonataol23
    @jonataol23 28 днів тому

    Antes de ver o video eu resolveria percorrendo a lista e verificando se tinha algum numero maior que nove. Daí geraria umma nova lista excluindo esses numeros (nem pensei na hipotese de existir numeros negativos). depois eu pegaria cada um dos itens da nova lista veria o valor que somado ao valor do item o resultado seria 9 e procuraria esse valor na lista e iria com cada item na lista.

  • @badbass555
    @badbass555 2 місяці тому

    Cabra inoxidável da peste, [Rapaz brilhante!] Oh raios, os recrutadores vão tirar esse teste da grade ahhahahah

  • @mateus2075
    @mateus2075 Місяць тому +4

    A soluçao 3 é bem legal, mas tbm tem que considerar que ela copia toda a array, dobrando o armazenamento (pensando em um banco bem maior).
    Considerando isso, achei a soluçao 2 mais otimizada.

  • @Bruno-fh7ec
    @Bruno-fh7ec 4 місяці тому

    Putz, resolvi esse exercício com força bruta, na preguiça fui ver a melhor solução nas respostas da comunidade, li essa solução 3 mas não entendi... até chegar nesse vídeo, agora tá desenhado, valeu kkkk

  • @almeidaGGG_
    @almeidaGGG_ 7 місяців тому

    Eu pensei em fazer a primeira solução bruta, verificando antes se o valor do array é maior que nove. Mas dps percebi q só funcionaria se na questão ele garantisse que só teria numeros positivos. Muito legal as outras soluções, aprendi algo aqui hoje.

  • @vitvitvitvitvitvitvitvit
    @vitvitvitvitvitvitvitvit 6 місяців тому +4

    resolvi isso esses dias na faculdade hshshakdjw. foi na força bruta. extremamente inteligente essa ultima solução, mas precisa pensar um pouco fora da caixa. preciso entender melhor esse assunto de complexidade dos algoritmos. Recomenda algum livro/conteúdo online?

    • @23f09crz
      @23f09crz 6 місяців тому +4

      pra introdução aquele “entendendo algoritmos” é muito bom, ele mostra uns conceitos e algoritmos bem interessantes de forma simples

    • @EdneyMaximun
      @EdneyMaximun 6 місяців тому +4

      Procura sobre analise assintótica, aqui no youtube tem videos sobre que explicam toda essa área de análise e complexidade de algoritmos

    • @vitvitvitvitvitvitvitvit
      @vitvitvitvitvitvitvitvit 6 місяців тому

      obrigado, senhores 🔥

  • @sharlockholmes4742
    @sharlockholmes4742 7 місяців тому +3

    me sinto burro vendo seus videos KKK cara tu e muito foda slk

    • @magichatake
      @magichatake 6 місяців тому +1

      pra mim qualquer coisa de algoritmo me faz me sentir burro

  • @andersondossantoscruz3685
    @andersondossantoscruz3685 6 місяців тому

    Massa demais. A primeira solução que sempre vem a mente é brute force 😂

  • @alefrodrigopereira9708
    @alefrodrigopereira9708 4 місяці тому

    Percorrer toda a array e criar uma array intermediária (para positivos não é possível a soma de 2 inteiros dar nove para números maiores ou iguais a 9) no caso de números positivos não seria interessante? A última abordagem é muito boa para casos de uso geral, aí funcionaria se a array problema tivesse números negativos ou estou equivocado?

  • @RenatoMinatoBR
    @RenatoMinatoBR 6 місяців тому +1

    Augusto, você poderia fazer um exemplo assim, mas com valores reais de um possível sistema, tipo nome, cpf, endereço, idade... Porque tipo, fica muito abstrato apenas números. Estou iniciando na programação e gostaria de entender, onde essa solução na prática ajudaria em um "possível" sistema. Agradeço, desde já! =D

    • @Carloskypp
      @Carloskypp 6 місяців тому +3

      Então, questões de leetcode são para sistemas que necessitam de maior performance. Em um geral, sistemas comuns que tudo que fazem é cadastrar dados em um lugar e mostrar em outro nunca vão precisar implementar algo do tipo.
      eu trabalho com engenharia de dados e recentemente precisei fazer um sistema de cálculo que precisava percorrer por petabytes de informação para conseguir fazer algumas operações, nesse caso esses conceitos me foram uteis pq criei estrutura de dados que organiza os dados que eu vou precisar para aquelas operações de maneira que fica muito mais rápido de acessar

  • @raphael.portela
    @raphael.portela 6 місяців тому

    irmão, parabens pelo seu conteudo diferenciado? vc acha que progredir no livro Cormen : introduction to algorithms , iria me ajudar nesse aspecto, ou é mais ficar praticando e batendo cabeça em leetcode, exercism(no caso de aprender uma linguagem nvoa)? tens algum livro ou algum material que te ajudaram qd vc ainda não tinha essa base sólida. Sou Dev frontend(2 anos de xp), me aprofundando em back e querendo aprimorar essa parte de lógica

  • @renanbrayner984
    @renanbrayner984 7 місяців тому

    Legal, eu fiz antes de ver o vídeo bem rapidinho e a solução do vídeo foi melhor que a minha 😂

  • @VulgoGS
    @VulgoGS Місяць тому

    Eu como programador iniciante faria a "força bruta inteligente" eu só iria calcular os números q são menor q o target, não faz sentido calcular um número q é maior.

  • @TheClaudiolista
    @TheClaudiolista 9 місяців тому

    Obrigado pelo conteúdo e pelas dicas

  • @samueleliassantosoliveira9897
    @samueleliassantosoliveira9897 6 місяців тому +1

    O que acha de primeiro retirarmos os elementos maiores que o Target e depois aplicar a melhor solução? Acho que isso depende também do tamanho do nosso array inicial né (Sou apenas um estagiário curioso)

    • @Carloskypp
      @Carloskypp 6 місяців тому

      Isso só incrementa uma percorrida inteira no array

    • @vito866
      @vito866 2 місяці тому

      pra fazer isso vc teria que ou percorrer uma vez inteira o vetor a mais ou ordenar ele
      de qualquer dos jeitos fica mais caro

    • @hrodricx
      @hrodricx Місяць тому

      Mas nesse caso como ele demonstrou, caso a solução inclua um número negativo você não conseguiria resolver

  • @nobunaga7800
    @nobunaga7800 6 місяців тому

    A lógica nem é tão complexa assim

  • @mendes1512
    @mendes1512 9 місяців тому

    Muito bom, gosto muito dos seus vídeos

  • @SanderRoni
    @SanderRoni 6 місяців тому

    Eu tava pensando, ahh dá uma variável pra ele e faz um print(variavel[2]+variavel[3])
    Mas pensei, ele vai desconsiderar...

  • @filipeangelo8586
    @filipeangelo8586 6 місяців тому

    Que video Topppp! Qual programa você usa para explicar?

  • @brunoferreira8558
    @brunoferreira8558 Місяць тому

    É interessante ver as soluções, mas no dia a dia é tão útil quanto um cinzeiro numa moto.
    No primeiro projeto em equipe ninguém liga se vc resolveu 0 ou 138923 exercícios numa plataforma, parem de viajar.

  • @rodrigorodriguescosta
    @rodrigorodriguescosta Місяць тому +1

    isso é a coisa mais inútil do mundo pra medir a habilidade de um desenvolvedor, desenvolver envolve MUITA COISA, um cara ruim que apenas estudar as principais questoes de algoritmo e ficar bom em algoritmo, ainda está longe de ser capaz de desenvolver softwares escaláveis, de qualidade e etc.
    um cara com experiência e sem treino de algoritmo, é muito mais fácil desenrolar uma tarefa que precise de um algoritmo complexo (nao é esse o caso) do que o contrário.
    se quiser passar em entrevista, infelizmente tem que treinar esses algoritmo inúteis pra depois em 99% do trabalho não precisar deles.
    Foda, mercado deixa de pegar muita gente excelente por causa disso

  • @homemdacosta
    @homemdacosta 6 місяців тому +1

    Poderia usar um hashset ao invés do hashmap também, eu acho

  • @Arthur_Bittencourt
    @Arthur_Bittencourt 6 місяців тому

    Iniciante em programação aqui.
    Cara! Como você consegue chegar na logica da última solução, para mim, o nível de abstração é gigante. Explicação top cara! Qual programa você usa para fazer?

    • @LeviCacau
      @LeviCacau 6 місяців тому +2

      De cara um iniciante realmente não chega nessa lógica, mas se vc quiser ficar bom e algoritmos e pensar fora da caixinha, tem que começar a resolver esses desafios, achar a solução sem pesquisar, e depois buscar uma forma de melhorar ela. Com o tempo vc vai ficando bom

    • @Arthur_Bittencourt
      @Arthur_Bittencourt 6 місяців тому

      @@LeviCacau prática é tudo né

    • @alquimistavoador
      @alquimistavoador 6 місяців тому +1

      É bem difícil na verdade, mas com mta prática e com um bom conhecimento sobre estrutura de dados é possível.
      Mas quase ngm cheguem chega nesse tipo de solução de primeira. É normal vc pensar em soluções mais simples, como a primeira q ele mostrou. Quando vc faz isso vc entende melhor o problema, consegue criar abstrações para soluções mais otimizadas

    • @Carloskypp
      @Carloskypp 6 місяців тому

      Eu discordo completamente do cara que falou que precisa pensar fora da caixa, todas questões usam ferramentas comuns
      Se você fizer muitas questões de leetcode você vai começar a identificar padrões e saber qual a melhor ferramenta/estratégia para resolver aquele problema. Ninguém quer que você crie um novo paradigma de programação em tempo real

    • @NullClass
      @NullClass 6 місяців тому

      ​@@CarloskyppConcordo, Carlos. Só uma observação: o leetcode é mais manjado em geral, mas acredito que para exercícios ad hoc não se aplique. Coisas como teoria dos jogos também, esquece.
      Ademais, um exercício é realmente difícil quando mesmo quem conhece os paradigmas e algoritmos usados tem dificuldade de enxergar a solução. Caso contrário, bastaria ser uma enciclopedia.

  • @Jiquiricacontagemregressiva
    @Jiquiricacontagemregressiva Місяць тому

    achei a opcao 2 paia pro leetCode em si, pq ele tem os resultados exatos la ja. quando muda o array o resultado vai mudar consequentemente, teria que percorrer a lista inicial mais uma vez pra saber a posição correta dos valores

  • @williamrosa8577
    @williamrosa8577 6 місяців тому

    Não entendi bem a última linha do código, principalmente a sintaxe:
    hasher[target-i] = idx
    Entendo que ele precisa fazer a comparação e armazenar no dicionário junto com o index da lista "nums" mas a sintaxe ficou confusa. Hasher é um dicionário, porque usou [ ] e não { }? E porque estamos atribuindo esse valor ao "idx" do for loop do "nums"? Pq isso não interfere no loop? Bugou minha mente total.
    Se alguém puder ajudar, agradeceria bastante kkkk joguei no chatgpt e ele reescreveu o código dizendo que estava errado, mas sei que não está.

    • @FantasMa_-up3vh
      @FantasMa_-up3vh 4 місяці тому

      Opa, William! Tudo certo?! Vou tentar esclarecer as dúvidas, qualquer coisa, volte a falar.
      [NOTA]: Só para deixar claro, a linguagem utilizada para resolução do exercício é Python.
      1 - Sobre a variável 'hasher' : Você está correto! Ela é um dicionário. Você consegue atestar isso pela sua inicialização (hasher = {}). O que está ocorrendo na última linha é o povoamento do dicionário, e, só se chagará nela caso a soma pretendida ainda não tiver sido encontrada (isso precisa estar claro, se não estiver, reveja os trechos iniciais do vídeo que explicam a lógica de resolução pelo terceiro método)!
      "... porque usou [ ] e não { }?"
      O dicionário é uma estrutura de dados indexada pelo par 'chave-valor' e, para atribuir um novo valor a uma chave de um dicionário, fazemos assim: 'nome_do_dict[chave] = valor'; É por respeito a essa sintaxe que ele utiliza colchetes ([]) na última instrução, e não chaves ({}) - Está atribuíndo o valor 'idx' (índice do complemento), a chave 'target - i' (complemento que falta para somar 9).
      2 - Sobre a iteração : É MUITO importante entender que o loop não acontece diretamente sobre a lista 'nums', mas sim sobre uma pequena modificação da mesma. Note que o laço 'for' está atrelado ao retorno de uma função aplicada a 'nums', chamada de 'enumerate()'.
      Resumidamente, o que essa função faz é: para cada valor presente na lista a qual foi aplicada (nesse caso, 'nums'), haverá o posicionamento de um índice, de modo que, esse par/tupla (índice, valor) será adicionado a uma nova lista (uma lista ENUMERADA).
      Agora, é preciso saber que, por padrão, o 'for' do Python atua como um 'for each', de modo que para cada laço/iteração sobre a lista retornada por 'enumerate', estamos guardando o conteúdo do ÍNDICE em 'idx' e do VALOR em 'i'.
      "E porque estamos atribuindo esse valor ao "idx" do for loop do "nums"? Pq isso não interfere no loop?"
      Veja, em nenhum momento há atribuição de um novo valor a 'idx', e sim o contrário: o índice 'idx' é atribuído a uma determinada chave (target-i) do dicionário 'hasher'. De nenhuma forma, alteramos diretamente a lista "nums".
      Sei que a explicação está grande, e talvez um pouco confusa. Mas espero ter conseguido ajudar de alguma forma! Abraço!

  • @diegossena
    @diegossena 6 місяців тому

    Utilizar hashmap é mais otimizado que utilizar um array simples? Penso que pelo algoritmo de busca do hashmap ele pode ser mais ótimo em certos casos. Mas nesse exemplo em específico a busca em array ganha, não? Já que o tamanho máximo do array será length - 1 sempre

    • @Adrianlemess
      @Adrianlemess 6 місяців тому +3

      Oi amigo tudo bem? Não sou ele mas vou tentar ajudar.
      O que importa em big O eh a escala, o length que tu mencionou, tu não sabe quantos elementos pode ser, então pensa que se for um array e tu buscar o array, sempre q tu buscar vai ser O(n). Como tu está buscando dentro de um for, N*N eh O(N^2).
      O uso de HashMap eh bom porque buscar elementos no HashMap tem acesso constante, eh O(1), logo tu terá só o N do for em si

    • @alquimistavoador
      @alquimistavoador 6 місяців тому +1

      Por baixo dos panos acho q o complicador cria um array mesmo, então o acesso no hashmap deve ser O(1)

    • @magichatake
      @magichatake 6 місяців тому +1

      Mano, hashmap é, na maioria das vezes, a melhor coisa pq ele aponta para o elemento na memória sem ter que procurar (fzr um "loop" até achar)

  • @pdrferrari
    @pdrferrari 8 місяців тому

    fantástico!

  • @gustavoestivalet3453
    @gustavoestivalet3453 8 місяців тому

    Video muito bom!!!

  • @fellipemarques1247
    @fellipemarques1247 6 місяців тому

    Qual a linguagem que foi utilizada nesse vídeo? (na parte final)

  • @bjsk6109
    @bjsk6109 6 місяців тому

    Qual a complexidade do metodo '.get()'? Isso não deveria ser levado em conta?

    • @GutoGalego
      @GutoGalego  6 місяців тому

      É O(1). Tem que ser levado em conta sim. Por exemplo, se .get() fosse O(n) ai o algoritmo ficava O(n2)

    • @bjsk6109
      @bjsk6109 6 місяців тому

      @@GutoGalego show de bola Augusto, obrigado!!

  • @ursochurrasqueira
    @ursochurrasqueira 6 місяців тому

    muito top

  • @justfelipe7542
    @justfelipe7542 8 місяців тому +2

    Não consegui entender :(

    • @heraldo623
      @heraldo623 8 місяців тому +3

      A melhor solução é iterar pela lista e precomputar qual número somado ao elemento atual da lista é igual ao alvo (target). Isso evita você ter que iterar a lista multiplas vezes pra procurar qual número somado dá o alvo. Por isso é a melhor solução, complexidade O(N) (Big O de N, o tempo de execução no pior caso é proporcional ao tamanho da lista, N)

    • @franklinwanderson4316
      @franklinwanderson4316 6 місяців тому +1

      Obrigado @heraldolucena623

  • @gabrielbhering1085
    @gabrielbhering1085 5 місяців тому

    com 50ms:
    class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
    hasher={}
    for i in range(len(nums)):
    if nums[i] in hasher.keys():
    return [i, hasher[nums[i]]]
    else:
    hasher[target - nums[i]] = i

  • @williansteinagel
    @williansteinagel 6 місяців тому

    1:47 ela seria n/2 + n log n, não? pq percorreria metade do array

    • @powersamurai686
      @powersamurai686 6 місяців тому

      mano me explica pf oq eu seria isso de "O de N ou N log N, brisei nessa parte"

    • @williansteinagel
      @williansteinagel 6 місяців тому +1

      @@powersamurai686 Opa! São notações BigO, a gente usa pra determinar se, pra chegar em um resultado, um algoritmo passaria muitas ou poucas vezes por um determinado ponto (no caso o ponto é acessar um valor no array), ou seja, se os loops vão acabar rápido ou não kkk.
      O O(log n) significa que você vai acessar uma fração relativa ao tamanho do input - no caso o input é [2, 7, 11, 15], e se o input pedisse pra somar a primeira metade do array com a segunda, daria pra fazer com O(log n) e o resultado seria [13, 22];
      O O(n log n) significa que você vai acessar essa mesma fração mas para cada item do array - que seria procurar pra cada item um par no array que desse o resultado esperado, caso não fique claro usando o exercício do vídeo, tenta trocar a ordem dos itens que vai ajudar;
      O O(n) significa que você vai necessariamente passar por todos os items do array - tipo se vc precisar somar o array todo ou algo assim;
      O O(1) significa que praticamente não vai ter loop!
      tem outros tmbm, mas a ideia é por aí

    • @powersamurai686
      @powersamurai686 6 місяців тому +2

      @@williansteinagel valeu pela explicação, tava vendo um video pra entender e sua explicação complementou para o meu entendimento, valeuu!