Design Hashmap - Leetcode 706 - Python

🚀 neetcode.io/ - A better way to prepare for Coding Interviews
🥷 Discord: / discord
🐦 Twitter: / neetcode1
🐮 Support the channel: / neetcode
⭐ BLIND-75 PLAYLIST: • Two Sum - Leetcode 1 -...
💡 DYNAMIC PROGRAMMING PLAYLIST: • House Robber - Leetco...
Problem Link: leetcode.com/problems/design-...
0:00 - Read the problem
0:50 - Drawing Explanation
7:45 - Coding Explanation
leetcode 706
#neetcode #leetcode #python

Пікірлер: 48

  • @AkmalNodirov-vt9gw
    @AkmalNodirov-vt9gw11 күн бұрын

    I just used an array before, as the key and value is also integer. That is correct, we should use hashed indexes as general has maps intented to store any kind of type. But in our case it does not necessary, we can just get 1000 rooms of array and store every element as a value. This is just my opinion. By the way, untill watching this video I did not comprehend how actually hash map works. Thanks Navdeep

  • @smartsoothing776
    @smartsoothing776 Жыл бұрын

    I think this is not an easy problem!!

  • @rasuldanierov1353

    @rasuldanierov1353

    9 ай бұрын

    easy )

  • @sameensolkar6193

    @sameensolkar6193

    4 ай бұрын

    yes, only if you don't know how hashtable works

  • @felipeklahn988

    @felipeklahn988

    7 күн бұрын

    It was because on the problem it didn't actually required chaining, if you see on the put method the problem described it asked to just update the value if the key already exists. But the way NeetCode implemented he used chaining and that what's made it harder, but it's a great explanation

  • @mohamedsalama2743
    @mohamedsalama27435 ай бұрын

    you can just use a frequency array with the total size and fill all the numbers with -1 and then just update the values with put/remove, the only drawback is that this will have a space of O(N), but it's much less code and it's like a Hashmap anyway

  • @krateskim4169
    @krateskim4169 Жыл бұрын

    you are great

  • @IK-xk7ex
    @IK-xk7ex9 ай бұрын

    I've stared to love DUMMY NODES!

  • @yizhang9089
    @yizhang90899 ай бұрын

    So we don't need to initialize a dummy node?

  • @user-ph3kc4zq6c
    @user-ph3kc4zq6c8 ай бұрын

    Why is the first node's key and value equal to -1 in the ListNode? Where are we defining it to be -1?

  • @cinimodmil

    @cinimodmil

    7 ай бұрын

    we're simply giving it a default value as the 'dummy' node to avoid edge cases where self.map[self.hash(key)] is None. also, the constraint shows that key and value are in this range: 0

  • @mlevvy96
    @mlevvy964 ай бұрын

    Do we really need to check `while *cur* and cur.next` for remove operation? Can't we just use `while cur.next' ? I think it's redundant because if there is cur.next then `cur` is definitely not None and we modify the 'next' node anyway for the actual removal process

  • @ps_v.2.3.20

    @ps_v.2.3.20

    12 күн бұрын

    Same thought! Just try with cur.next and it works cool

  • @19.sairoopesh10
    @19.sairoopesh10Ай бұрын

    was stuck on that edge case

  • @edis671games
    @edis671games9 ай бұрын

    anyone here from october 4?

  • @puseven8604

    @puseven8604

    9 ай бұрын

    Me!

  • @shakeebparwez

    @shakeebparwez

    9 ай бұрын

    Me too.

  • @batman8377

    @batman8377

    9 ай бұрын

    Me too

  • @monsterr.k3619

    @monsterr.k3619

    9 ай бұрын

    Yep

  • @priyam86f

    @priyam86f

    9 ай бұрын

    meeeeee

  • @aaronye4857
    @aaronye4857 Жыл бұрын

    Why is the key and value equal to -1 when init the ListNode?

  • @tangwu3924

    @tangwu3924

    9 ай бұрын

    dummy node

  • @shaco6630
    @shaco6630 Жыл бұрын

    I thought the question said that there would be at most 10,000 operations done on the map ?

  • @YouProductions1000

    @YouProductions1000

    Жыл бұрын

    Yeah it does. The solution is still fine though since keys > 1000 get modded to an index between 0-999, and it's better for memory compared to initializing 10,000 nodes (maybe not for time complexity, performing get operations)

  • @pikugoud1358
    @pikugoud13586 ай бұрын

    you should arrays and its indices instead of map

  • @aamrahmunawwar5033
    @aamrahmunawwar5033 Жыл бұрын

    why cant me just use an array instead of an array of ListNodes?

  • @utkarshmaurya6877

    @utkarshmaurya6877

    Жыл бұрын

    Because insertion and deletion won't be constant time in an array, you will have to shift values. That won't be a problem if you use a linked list.

  • @jeminpatel3273
    @jeminpatel32739 ай бұрын

    why can't we use list?

  • @kareemadesola6522

    @kareemadesola6522

    9 ай бұрын

    0

  • @prajwalrawat333
    @prajwalrawat333 Жыл бұрын

    Hey, have been watching your videos and following. I want to be good in DSA to crack interviews, what path should i follow?

  • @omaryahia
    @omaryahia23 күн бұрын

    ،amazing

  • @tanish5662
    @tanish56628 ай бұрын

    still not sure why you have ussed 1000

  • @selfhelpguy5589
    @selfhelpguy5589Ай бұрын

    Why 1000?

  • @shashankhegde8365
    @shashankhegde83659 ай бұрын

    Why can't we just use a dictinary rather than an array?

  • @coolkaw4497

    @coolkaw4497

    9 ай бұрын

    because isnt a dictionary essentially a hashmap already so there would be no point 😂

  • @aditijain2448
    @aditijain24489 ай бұрын

    why use linked list when we can use simple list

  • @VaishnaviMamilla

    @VaishnaviMamilla

    9 ай бұрын

    I think remove in a list takes O(n) TC where as in LL it takes O(1).That may be the reason

  • @flamendless
    @flamendless Жыл бұрын

    Why not [List()] * 1000?

  • @NeetCodeIO

    @NeetCodeIO

    Жыл бұрын

    Yeah, that would've been more concise

  • @felixsla21

    @felixsla21

    Жыл бұрын

    But wouldn't this copy the same ListNode reference 1000 times?

  • @frigginPAN

    @frigginPAN

    Жыл бұрын

    @@felixsla21 yeah youre right. I also thought [List()]*1000 would make 1000 objects but it wont. It just make one object and then stores its reference in all indexes

  • @codedoctor3265

    @codedoctor3265

    11 күн бұрын

    @NeetCodeIO i think you should initialize with 10000 instead 1000 since question say there 10**4 calls

  • @Yougottacryforthis
    @Yougottacryforthis6 ай бұрын

    kinda awful hashmap but hey it meets the api requirements i guess. sad to see no dyanmic array, solving collisions with list and not a tree and so on