HashMaps in Python Tutorial - Data Structures for Coding Interviews
Вставка
- Опубліковано 13 чер 2024
- Data structures are one of the most important things to prepare for coding interviews. HashMaps are one of the most essential data structures to know, and today we'll be learning how they work, what their benefits are, and solving a practice problem together using Python.
📘 Chapters
0:00 - Intro
0:43 - Explaining HashMaps
6:47 - Example Coding Problem
🔗 Resources
LeetCode Problem: leetcode.com/problems/group-a...
🎵 Music
Brontosaurus - Dylan Sitts
Deadlines - Dylan Sitts
Pick Up Your Phone Please - baegel
Slapperoni Pizza - Jobii
#coding #softwareengineer #python - Наука та технологія
After a year hiatus (sorry, got busy with work!) this series is continuing! Check the next video out here: ua-cam.com/video/7gWFRA0V0OE/v-deo.html
Please moreee nd in java
Thanks bro, eagerly waiting for your content.
Great stuff! Super underrated channel (but not for long i bet =) )
NO WAY YOU COMMENTED! Thank you so much, you’re actually the reason I was inspired to start this channel so I really appreciate you commenting!
PS: everyone go sub to this man, single-handedly helped me get a job :)
Yooo NeetCode is here yay!!!!
!!! Ur both great 👍
Good chanel
bhai saxx tha aur bnao
After 4 days of struggling, this video finally gave me the breakthrough to understand hash maps in my self taught journey. Concise and coherent, this is the best tutorial video I've seen so far!
I love the fact you go through an actual problem at the end. That made it “click” for me. New sub here, please keep it coming!
The explanation on this was so clear. Absolutely brilliant. You have gained a new subscriber and I can't wait to see this channel grow the way it deserves to!
Great video. It’s hard to strike the balance between keeping things concise while also exploring them fully, but you did an incredible job of it here.
this is first video, but i'm already excitement about learn next algoritm in this series. The best.
Just uploaded the newest one after a long break!
Not even half way through this video and I just want to give props to how concise the information is. I hope to see some machine learning content soon :)
great hash map explaination, plus it have leetcode example and explaination for the answer in detail at the end of the video which is really great.
I watched this video like 3 times over a month ago, and I was struggling with understanding the logic even though you tried so hard to explain it. Now, after some practice, I watched this video once again and I can say I understand the code perfectly now. I just wrote the code before seeing the solution. Thank you for yours videos, one of the best channels out there!
The best explanation I found about this topic yet! Thank you so much, God bless you
Your explanation is simply the best one I found, thank you so much man!
Great video. After I watched your video, I tried to code it myself without looking and tried to do it without defaultdict(), just adding my first val as a list and then appending to the list for the following ones. After I had done that, I converted it to be like yours. Besides the obvious benefits, something else I realized was doing it your way removed the need to check if a key was already in the dictionary. In my version, I had to make that check, otherwise, I would be attempting to append to a list that hadn't been created yet.
That's incredible, I understand it right now. Thanks you, it really simple explaination and easy to understand
wow, still wrapping my head, I am new to it, but its very concise and all good content, man.
Great Work! Nice Explanation Dude. Really helpful
This is awesome! thank you very much for making this video!
IMO, best explanation on YT
Seriously man, i could see your hard work through this video.
Thank you so much! That means a lot :)
great content and will continue to watch in the future :)
The video was great! However, if you use the SORT method, the best time complexity you would get is O(nlogn).
If you want to solve it in O(n), a clever approach is to first check every word and create a key value pair of every letter.
For example, you go through the first word and get 3 'a', 2 't' and 4 'e'. Now you save this in a dict { 'a':3,' t':2, 'e':4 }. Then, you go through every other word and do the same. If you find any other word with 3 'a', 2 't' and 4 'e', you have found an anagram.
So just comparing the dicts at the end would give you the anagrams. You would go through the list only once so you have time complexity O(n).
P.S. you should first check if two words are the same length. If not, you can automatically cancel them as anagrams.
Lovely Vid!! Great Work
Great job! thanks for your video
This is what should be ranked #1 when searching for "python hashmap"
Thank you!! I’ll be making the full series soon so don’t worry!
city_map = {}
cities = ["Calgary", "Vancouver","Toronto"]
city_map["Canada"]= cities
# This works so much better
Yeah I'm not sure why he did the extra step. Like he took two minutes to look up w3school article on dictionaries and made a video out of it.
Excellent!!
You're great, good explanations
Wow. It makes sense now. It finally makes sense. Thank you!
You're welcome! I'll finish up the series in the coming weeks!
Appreciate the video, well explained 👍
Thanks! You really help me! Wish you 1m subs and more
This was a really amazing learning video, I like your style of teaching that first of all you made the concept clear and then a question to make it more clear.
Btw I was here because I didn't get clarity with the neetcode channel of the same question. so I request you to upload these types of videos more thanks 🙏
Glad you enjoyed it! I'll see what I can do!
So, ive been programming in python for a little over a year, and i've always seen those hashmap memes, and how they're the solution to everything, but the name Hashmap just seems intimidating, so i never bothered thinking about using one or looking up what it is...until this day, when i realized its just a dictionary, and I've been using them all the time lol Great video, keep it up!
Please complete this playlist, its really helpful. Btw i just subscribed so keep up the work please.
hey bro thank you so much don't focus on views just post and you'll make historical content as your vids are easy to understand because of the analogies you use thank you so much buddy lots of love from india
great video :)
Awesome, keep it up
Goat vid codebagel, do more implementation vids!!!
Thanks so much! I’ll keep on making them!
love this video!!!!!
Thank you so much!
Please make videos often , stuff is great and smooth
Have one coming out tomorrow!
ngl ur actaully a good teacher
Hello, thanks for a great video! Can you also please explain if Hash Tables and Hash Maps are the same (in general) ? If different, how does python dictionary Data structure handle them?
thanks so much in advance !
Damn, that's a very good video ...
Great channel
Great Explanation you should make more videos
Thank you! I plan on doing it a lot more frequently over the coming months!
Can I just return anagram_map.values() instead of the result list? I'm not sure if there's some kind of issue later on but is it faster to do it by returning values since it is already in list form rather than adding 1 more for loop?
Simply Wow - from a noob!!
thank you
Hey codebagel i request you to please upload complete dsa playlist using c++ and loved your amazing content
where did you created the module collection
can we use long long type and do bit-masking?
bro do more vids about all dsa pls , this vid is really good
underrated
the best ....
But isn't sorting each of the strings inside the loop making the time complexity O(n * nlogn)?
nice job keep going =)
Thank you!
wao wao wao
sorting has its time complexity right, how is this optimal? who decides that?
thanks WholeHeartedLy !!
for the results, you could just use
result = list(anagram_map.values())
correct me if this is not the correct way. tq
Are hash maps and hash tables really the same?
Man, this channel only have 19 videos at this time.
I wish you could do more about algorithms and data structure.
Been getting lots of positive feedback on it, so I'll get back to working on the series in the coming weeks!
@@Codebagel thanks. i'm waiting for it.
@@futhedude4848just uploaded, took a lot longer than I expected but it’s out now!
@@Codebagel thanks, i'll check it
I don’t think you can use import for
the most of the interviews
Dammm🎉
Bro why didnt you continued this series 😢 plz tell us if u moved to another channel we need you
For the result you should have just called .values no?
how simple, i didn't it was this simple to think. Find two numbers which gives the sum 10 from a list of number lets says [ 1, -3, 4, 6 , 9 ]. So here I would say for 1 the number is 9, -3 its 13 so on. So essentially I created a dictionary (hash map) with key as the result of 10-1, so when I want to check for the next number is the one, i can just check arr[9] and if its present then I have the first solution. Damn..
To make it even more simple, you take your question process it for every element in the array in a way that the dictionary benifits from the result you generate. Ig thats hashmap, its just making dictionary. In that logic an array is a hashmap where the key is already defined. so its O(1) from start, but for hashmaps sinse you need to check every element to create a hashmap the the program is O(n) or more as it depends on question but once the hashmap is created the order its exec is O(1)
Your content is way better than any paid one ,but you seriously need to do marketing ,make some content related to india and your channel will get some instant boost , make a video on "Top 10 common python algorithms asked by Maang in India" ,btw love from India
Thank you so much! I have a bit of a long-term plan in mind regarding this, I’ll definitely add that video to the list though! :)
why did such a small code at the end take such a long time for me to understand
why do another for loop why not just return anagram_map.values() ? it already returns a list and the values are in a list so its already a list of lists
Because of the `defaultdict(list)` => "TypeError: 'list' object is not callable". You will need `list(anagram_map.values())`
using the equal sign to denote a key -> value connection is not a good choice imo
dude like wtf, dthe moment you said city_map = dict() i was like wtf, i've be working with hashmaps for the past 6 months and i had no clue
Dude, you have used sorted inside a loop, isn't it increases a time complexity.. Here, you are claiming O(n) but i think its greater than that because sorting function of python also taking some time complexity based on "n".
Please dsa in cpp
Will do in the near future!
And I had to search in Japanese to find the video, even better.
you make good coffee wao wao wao wao
Kinda felt happy to see Pakistan in the example, i don't know why😂
Why the funny names in programming? This always happens whenever I try to resolve a problem. Why can't they just say it how it is ? I was intimidating hearing a crazy word like HashMaps only to find out I've been using them the whole time, dictionaries. Same goes for relational databases. I've been using them the whole time but because I didn't know what the interviewer meant by relational, I messed it up and she gave me an eyeball like I was a fraud. I still remember the "oooOOk Kaaaay". Just say , "you know the database with manytomanyfield or onetoonefield?" instead of these nonsensical words. Talk practical not theory. Idiots.. Sorry for the rant, it's just these funny names can trip up people.
Amazing Man, you and @Neetcode are the best channels for learning python
Thank you for the kind words! I'll finish up the series in the coming weeks!
**Keep uploading more LeetCode, NeetCode, DataStructures and Algos.
cities = ["Calgary", "Vancouver", "Toronto"]
city_map = {"Canada":[]}
city_map.update({"Canada":cities})
print(city_map)
============================
from collections import defaultdict
class Anagram:
def group_anagrams(self, strs):
anagram_map = defaultdict(list)
for s in strs:
anagram_map[tuple(sorted(s))].append(s)
return list(anagram_map.values())
anagrams = Anagram()
print(anagrams.group_anagrams(["eat", "tea", "tan", "ate", "nat", "bat"]))
I like the `return list(anagram_map.values())` instead of doing a second loop.
You're amazing thank you so much 😭🩷