Mock Google Coding Interview with a Meta Intern
Ғылым және технология
🚀 neetcode.io/ - Get lifetime access to all current & future courses I create!
Checkout my second Channel: @NeetCodeIO
Today I gave a mock google coding interview to @FryingPan who is a former intern at Meta currently studying for coding interviews as he finishes up school. He also recently interned at Meta in NYC.
Btw this is the question I asked: leetcode.com/problems/insert-...
We actually solved it on the channel here: • Insert Delete GetRando...
🥷 Discord: / discord
🐦 Twitter: / neetcode1
📷 Instagram: / neetcodeio
🎵 TikTok: / neetcode.io
Time Stamps
0:00 - Intro / Background
1:45 - Interview Starts
2:45 - Clarifying questions
4:40 - Start coding
7:40 - Hint #1
11:15 - Suboptimal solution
16:35 - LIGHTBULB MOMENT
23:55 - Half time remaining
25:30 - Test cases
29:55 - Follow-up Question
36:55 - Bug bashing
39:13 - Disqualified for cheating
42:05 - Interview Complete
42:50 - Debrief
45:40 - Final Results
#google #coding #interview
google coding interview
coding interview
google interview
cracking the google interview
meta software engineer
facebook software engineer
software engineer interview
Пікірлер: 720
🚀 neetcode.io/ - Get lifetime access to all current & future courses I create! Should FryingPan mock interview me next? Thanks to FryingPan for joining, check out his video here: kzread.info/dash/bejne/lICflJlmqK6ndJM.html Btw this is the question I asked: leetcode.com/problems/insert-delete-getrandom-o1/ We actually solved it on the channel here: kzread.info/dash/bejne/nGh_2cp7qsy1oMo.html
@devstuff2576
Жыл бұрын
Wait, Google docs aren't used anymore???
@alisonoz7219
Жыл бұрын
Yeah I'd like to see that 🤩
@zesanurrahman6778
Жыл бұрын
I became homeless. I am depressed
@slayerzerg
Жыл бұрын
yeees
@smtp_yurzx
Жыл бұрын
It seems only fair and right with the world. I mean if you prefer balance in the universe rather than chaos.
"If there is a problem, just throw a hashmap at it." - someone really smart
@subhrajyotisen7218
2 ай бұрын
Funny how true this is
@user-wo8kh7cw4k
Ай бұрын
@@subhrajyotisen7218 why not Hashset here ? until follow up question
@subhrajyotisen7218
Ай бұрын
@@user-wo8kh7cw4kthe code in this interview seems to be more pseudo code. When writing actual code, they will mostly have to to use hashset since Set is usually an interface in many languages and HashSet is one of the implementations
@nile7999
Ай бұрын
@@user-wo8kh7cw4k you need to store the index as the value.
@harshwagh243
7 күн бұрын
Works all the time
“In your real interviews, do you talk the same way..?” LMAO that is the question I wanted to ask lol
@pinecedar180
7 ай бұрын
It was obviously a frank discussion between friends
@parvscripter
2 ай бұрын
@@pinecedar180 but you can be pretty frank just don't be unprofessional
@decomush
Ай бұрын
I'm 5 min into the video and I wanted to ask that
I find it funny that when he googled for how to get an arbitrary element from a set, he actually found Java code, and pasted it into his Python solution. And NeetCode is just like "great".
@malikau917
Жыл бұрын
😂
@user-lt6hz7jh2p
9 ай бұрын
I 😂😂😂
@NotNazuh
6 ай бұрын
😂😂😂😂😂😂😂😂😂
@geekzombie8795
6 ай бұрын
Lel
@tabish-shakeel
2 ай бұрын
I didn't notice that, can anyone paste the timestamp. I watched the video twice still didn't see it
Hey Neetcode! I got the exact same question on my Adobe interview two days ago. Luckily I have been practicing from your collection of questions last few months and never missed any of your videos. I bagged my offer today!! You have literally made this happen for me. Can’t thank you enough for this day!
@onkarsingh-vu1ds
Жыл бұрын
Hi, is adobe allowing remote work?
@SIAMEInekeidijdnen
Жыл бұрын
Congrats ma boi
@usa5450
Жыл бұрын
Congrats nigg*
@dv-89
8 ай бұрын
what collection of questions you are talking about? Neetcode 150?
@paultvshow
3 ай бұрын
Hey man. I have been preparing for coding interviews for a month now. I am a self taught coder who is passionate about coding especially in AI and machine learning fields. I have just started coding for 3 months with hands on projects of over 50+ as I have quit my previous job and dedicated my full time learning coding. During the past weeks, I spent at least 4-5 hours a day on Leetcode and I have completed almost 100 problems. Now then I have started watching coding interview videos, and I feel that problems in most mock interviews seem a little too easy. So I just wanted to know from people like you who have already experienced real interviews that how difficult are there real problems?
for python folks, removing an item from set, which isn't in the set , using remove() method will result in error, so use discard() method.
@danielsank2286
Жыл бұрын
Just use pop
@yatintyagi4366
6 ай бұрын
or just use an if statement
@youMatterItDoesGetBetter
2 ай бұрын
@@yatintyagi4366 wouldn't the if statement be more clear since the value isn't in the set to begin with? Thus if changed in the future... it'll still run correctly?
@sandeepreddy1286
Ай бұрын
Agree smart move
@bit-learn
Ай бұрын
@@danielsank2286 pop removes a random value from the set, not the required one
please record more of these google mock interviews!! this questions seem so easy initially, but watching how frypan is talking aloud and saying his thought process makes me realize how the little details he says is actually valuable to you (neet) as the interviewer. now i realize why i failed my interviews so much
@danielbrown7534
Жыл бұрын
Watch this i was thinking maybe we could store in an array..but wont store in array initially..we would then use a function to check the array if the value was already store there.. if yes then use the value position to store the new figure.. if no then use the new value as storage.. I would also use a function to get a random number using the array limitation then use that random number to return a value from set.
@ahsanmurtaza6185
Жыл бұрын
@@danielbrown7534 That wouldn't meet the time complexity requirements.
@stefannita3439
8 ай бұрын
@@danielbrown7534 searching in an array is O(n). Unless the array is sorted, in which case you can use binary search and it becomes O(logn). But to be able to always search in O(logn) you have to maintain the sorted order of the array at all times, which means your insertion becomes O(n) (find the correct index to insert at to maintain sorted order: O(logn), insert and then shift all of the elements to the right of it: O(n)) and your removal is now also O(n) (typical array removal). The point of this question is to kind of juggle all of these limitations. Every time you choose a data structure to optimize one of the operations, something else becomes more expensive. Nothing is free. This is why the trick is to use different data structures simultaneously, each good at different operations, and figure out how to make them work together to create an interface where all three of the exposed operations are O(1). But even this isn't free, as you're now basically doubling the memory you use (still O(n) space tho).
@adolft_official
6 ай бұрын
These interviews are Haram bro, start praying 5 times for FALSEtine and Stop using Jewish owned KZread as it funds Israel against your Allah
Gah, what people watching this might be missing out on is the anxiety, and the difficulty between coding and talking through the code. I sat here correcting him as he went, but also remembered how much I stumbled over trivial stuff. It's so nerve racking.
@asagiai4965
2 ай бұрын
True, IMHO I think he should ask all the possible questions. To ease the doubt.
Been watching Mock interview sessions for a long time, but this is by far the most enjoyable session for my all time :)
Things I'm starting to realize every developer needs to do during an interview. Ask tons of questions before even thinking about coding, even if they seem obvious. If the easiest way to think of a question is in one-time complexity odds are they are hinting at the complexity they want in the description of the question.
@MichaelButlerC
8 ай бұрын
I just hate to ask questions for the sake of asking questions though...
@eesnehhil
7 ай бұрын
@@MichaelButlerC frfrfr
@AnimeZone247
24 күн бұрын
@@MichaelButlerCyou’re going to have to do that during the actual job
This is the first time I watched a 40 minute video. Real fun, we want more of these!
The collab we waiting for..🔥 The only 2 coding channels i subscribed and getting that collab is awesome..
Thanks so much @NeetCode for doing this. I think this video is pretty realistic (except for the way @FryingPan talks 😂) compared to the other mock interview videos online! Helped me relate a lot being an interviewee. Looking forward to more such videos!! Keep inspiring with your good work 😃
@davidtran9455
4 ай бұрын
well did you get the job?
@adityasankhla1433
20 күн бұрын
@@davidtran9455 😭
There were 4 people in my coding interview a few months ago. They were quite friendly with me, though. I had to code C++ in MS Word, which was a pain the neck. Even the easiest questions become hard because of tension. In addition to that, time flies when you are under pressure because you are trying to come up with an answer in your head and trying to word it properly.
This is a really inspring mock interview. Learn a lot from this standard mock interview. Please upload more similar interviews including system design mock interview.
That's cool. I've learned a lot during the Mock test interview. Understand deeply the way the interviewer asked the candidate and the way of thinking to solve the problem.
the collab i didnt know i need 😂 frying pan is too funny lol. Great hint from Neetcode too, just enough to nudge him into revelation
That adding array to value for duplicate values was amazing, always had that doubt but I found the answer today. Thank you for the post
Invigorating! Great questions all around, even greater thoughts and solutions!
This interview made me realize that I can do it too. Thanks, Neetcode
Priceless video!! Thank you so much!!
Can we get more interviews like this one? It was really helpful. Thanks!! 🙂
@heretic7135
Жыл бұрын
??
This guy is total tech lead material
Big fan of neetcode ❤️ just want to thank for all the amazing content you post in your channel... Thank you 🙏 love from India
Theres something neither of you caught. When you remove elements from the set that keeps track of indices and when there's only one element in the set, you are left with an empty set. What you want is to get rid of the map entry altogether. So you should check if it's the last element, and if it is, del that entry. Also, he mentions changing to a set instead of an array because when he chose the array first, he was using the first index and then he probably thought "wait.. now if I delete the first index I have to shift all the remaining ones to the left". Well actually you can simply use the last one instead of the first by using "pop", and so you can still use the array
@christiancepeda5457
Жыл бұрын
excellent observation
@ProfessorQuality
8 ай бұрын
what if you want to remove the number first in the list, you can't use pop() instead?
@xingzheli7431
7 ай бұрын
It's remove by value, so it's worst-case linear time for an array.
@Biggyweezer69
5 ай бұрын
@@ahmadelmassalkhi This actually isn't true. since we are only ever pushing values into the values array, the index of the last value in the value array will always be the last index in that values index array. This stays true whether there are duplicate last values or not. Using a set here isn't better really.
@ahmadelmassalkhi
5 ай бұрын
@@Biggyweezer69 I realized I was digging deep, while even the obvious case of having a duplicate of the last element, it raises an error (in the final code of the guy in the video)
The code in follow up has a bug... In the remove function, when the size of self.map[value] equals to zero, we need to delete the empty set like `del self.map[value]`. Otherwise, next remove call for same element will cause an error.
The collab I was waiting for years. You guys are prob my fav swe youtubers
So useful and so fun session. thank you for this video, it relaxes me somehow while hearing the layoff news
Enjoyed this video so much i watched on both your channels. Can you make a series of this?
Awesome, more of that would be highly appreciated
I love this, frying pan makes coding interviews fun
I never thought i needed this collab until now...
@zweitekonto9654
Жыл бұрын
You never know what u need until its too late. Thats why ur broke.
the last part you ask 'do you talk like this in real interview?' and then 'nothing' really make me laugh
Nice video, I can feel the pressure of the interviewee by his word and face
this was really informative and fun at the same time. thanks NeetCode.
Neet code Please do conduct whenever possible it helps the everyone a lot of Learning. Thank you so much...
In the follow-up, you could have just chosen the last element from the list to swap self.map[value][-1] and used pop() to remove it after the swap.
@yosup7563
2 ай бұрын
There is no indexing in sets so self.map[value][-1] wouldt work and then he also pasted some wrong java code in
Love this Mr. Neet Code!
This was like actually really awesome. I felt like I was solving the problem with him!
amazing content guys, loved it!
pretty decent easy-med level q to ask, will use in my own new hire interviews as it makes for good discussion!
The collab I didn't know I needed ..... 🙃
in the 30:28, the follow up question is to allow array to store duplciate. The follow up seems to be simplified, in general, it may ask while allowing to store duplicate values, what is to make each number to has the same probility in getRandom(say 1,2,2,2,2,2,3), 1 and 2 and 3 has the same 1/3 probility to be returned.
Unironically got a very similar question for Amazon SDE position
I would implement the Get(bool random, Enum input) first, then when implementing the Insert, pass each iteration to Get() with random false. If it returns a value then dont insert it as its duplicate. To get random you jusst need to set random to true. Then the remove is straight forward.
I thought we were about to get a face reveal 😂
@NeetCode
Жыл бұрын
Maybe on part 2... lol
@somakkamos
Жыл бұрын
Seriously man..i so badly want to see neetcode.. in my mind he is like moriarty frm sherlock show... coz thats how brilliant neetcode is.😊😊😝
@josepha8415
Жыл бұрын
@@NeetCode Is Techlead in the thumbnail
@joshuabiyinzika2834
Жыл бұрын
Me too..neetcode, make it happen!
@skyhappy
Жыл бұрын
Neetcode looks like an angel for sure
This is prolly the best channel out there for ds algos!!!
Im not sure if the rudeness was real or satirical. I’m not sure if being rude to the interviewer is a great strategy.
@tyeezy5460
Жыл бұрын
Language barrier maybe? But prob satire
Love the "Now let me ask you another question" at the beginning haha. Very inciteful video btw
love the concept, if you need another person to mock interview I would be happy to do one. I am an ex Quant trader now studying for algo / CS jobs.
@ahmedanwer6899
8 ай бұрын
Are ya still down? :)
None of my coding interviews for internships have been anywhere near this easy
@harryzhu
4 ай бұрын
but the mock interviews from faang are - its a mock not a real assessment- its used to get a feel for the format and UMPIRE application
I think the end solution doesn't consider removing a value from a map that has only one index
Neetcode’s code is neat! Thank you Neetcode!
So many headaches to end up in a cubicle Monday to Friday. May as well deploy this knowledge to develop independently and get all the benefits.
Something important is the use of descriptive names for your variables, because in this case without any previous context you won’t figure out what’s the function of “map” or “values”variables.
@mannyb096
11 ай бұрын
thats actually a great point! I guess in this case what kind of variable names would you use? Bcuz i cant think of what to call them other than values either lol
@hydromaniac7117
5 ай бұрын
@@mannyb096 removedInt
Nice video. Love to see more so I can prepare.
I am happy to know I almost guessed all the approach correctly!!
Pro tip to people interviewing. Don’t talk like this guy. Don’t swear. Don’t quiz the interviewer. Finding the optimal solution is a must, but they’re also deciding if they want to work with you. Some crude banter can give the wrong signal, and there’s zero advantage to you in risking it. Be polite. Don’t be cocky. Every grading rubric has score around cultural and team fit. Just FYI.
@DC-yw5yg
Жыл бұрын
FUC.K
OMG, very impressed by this solution.
So funny. I am still struggling with leetcode by just finishing the first 200. And I did not have much interview experience. The video makes me feel like we are all human beings.
Bro why didn't you upload this sooner I had my interview yesterday :,)
Awesome video! Quick question: What's the point of changing the last item of the array to the value to be deleted if you're just going to pop it anyway? Can't we just remove that extra step?
This was fun. Never seen someone so pleased to get the answer :P
Well shown who is a front-end developer, thanks
Can I ask if it is possible to use Built-in functions from the built-in datatructures in coding interviews, as what he used map.add() and map.remove() in the first problem? I thought it is required to create your own efficient functions except the Random Functions.
@jphamlett
Жыл бұрын
You can always ask, interviewers are looking for specific things. Most are just to see how you think not that you can regurgitate a solution
@charleslatrom7658
Жыл бұрын
Using built-ins are fine if there's more to the question. If the question was implement an efficient class which supports add and remove whilst omitting duplicates, then delegating to a Set would not be appropriate as they would be looking for you to design your own Set class (or similar). However you would not be asked that in an interview (unless you're going for L6+ at Google in a language-design role, e.g Guava team, Core Java Libraries, etc)) as the Map, Set, etc classes are extremely complex to write from scratch in 35 minutes.
Love this new content.
The snarky comments while Neetcode remained mute was hilarious
Omg that was so fun I really enjoyed the vid and it's perfect too because I have a final round coding interview later this week! You guys should collab more often, that would be such good content!
@shafaitahir4728
Жыл бұрын
How did it go?
Funniest, energetic interview I have ever seen , I want confidence like this😅🤣
Glad I could follow along with the code on the white Goggle Doc.
i was able to come up with similar solution. I'm happy lol. I was thinking along with him
Should we delete empty value-indices pairs from the map as we are removing? It seems to me that leaving empty sets around not only waste space but also breaks the if statement above.
@MRTNWSS
Жыл бұрын
I agree.
@marspark6351
Жыл бұрын
Yes. That's something they missed
Can you explain the follow up with allowing duplicates. I didn't understand that
how did I get this recommended just before the daily leetcode question became this today
17:55 When he realized what's the right way, and you see the smile, that's why we love programming. That's why ones, who think "I want to be a programmer because it means I get a lot of money" always fail. Whoever loves this, feel fun when programming is always the one who reaches his goal.
Another important question that could have been asked is the range of possible values to be inserted, it can influence a lot the final solution complexity!
More of these please !!!!!
I've 100% coded in Google Docs for Google interviews before. It was painful. I turned off the auto-correct settings right away
hey hey dude, thanks for the vidos!! now a cool mood for the whole day :)))
Ngl I thought he'd do a lot better for a meta intern. The first question was easy as balls
got my first interview on wednesday and this video equally relaxes and terrifies me 😅 Trouble is I cannot think aloud. I can think, then explain, but that takes more time. Hopefully not an issue, but we shall see 🤞
Bro please make more these kind of coding interview videos
Those sort of questions are a little bit odd, because the "reduce complexity" always boils down to the data structure behind and there basically a lot of useful stuff was already invented, so you wouldnt hire someone, who can recreate such a structure from scratch, because that's totally not part of the daily business.
please @NeetCode if your are watching .. so on the first part my approach was to solve everything through set as set gives everything like adding, remove with num and generating a random number from set (we can add it again on the next line) plus on the second part where duplicates are allowed .. we can change it to hashmap so that on removing if the values aren't zero we can just remove the iteration count of the numbers or pop the number otherwise when iteration count goes 0. need help in clarifying it .. thanks for experience though
set() doesn’t have iterator() attribute right so the way he gets the first value of the set in the remove function won’t work. Correct me if I’m wrong
You mentioned that you don’t actually use Google docs for coding interviews? What do you use a Google IDE? How do you draw out solutions on a Google online interview?
@SiddhantDubey
Жыл бұрын
it's not exactly "Google docs" but it's basically the same thing, just with syntax highlighting and no autocomplete (or there wasn't when I interviewed)
@t_regbs
Жыл бұрын
yea its kind of a modified version of google docs (at least that's what it looked like) with syntax highlighting
Do more of these
Couldn't the inital problem of get_random being o(n) be resolved by using the keySet() method of the hashmap? This would return a list of the keys of which we could then choose a random one based on its index, and then we would return the value in the hashset at a key: return self.map.get( random.choice(self.map.keySet())) from what I know im pretty sure hashmaps usually store a key list regardless so this should all be o(1)... ?
@eakishway
4 ай бұрын
Exactly. (keySet is called keys in Python.)
very useful and well designed website NC!
I code in google doc for two rounds in google internship interview last year ... really painful.
man plz do more and more hard and prefessional plz plz we need this.
damn google interviews are chill
Is there any difference between, x = 22 and y = [22], in terms of space complexity?
Theres no need for a map the set was fine. He just needed an array where he would add [0,1, 2... etc to it every time a value is inserted and he can make sure that hes not inserting a duplicate by checking if the value is in the set to begin with which also takes O(n) and when he comes to do the get random he passes in the list of indexes [0,1,2...,n] (n being the length of the set) and then he can get the random from the set by doing set[result of random]. Let me know if this makes sense to anyone.
could you use 2 hash maps? one that maps values to indexes, and one that maps indexes values? that way we can just generate a random integer from the index hash map and use that to get the corresponding value from the value hash map
Great collab!
U can just return a random number in range of the index and return the value at that index
My man was coding in Python and searched how to get the first element of a set in Java. Genius. And he said it so confidently too: "I got it sir! I got it!" 39:25 😂 It's "next(iter(mySet))" by the way. And thank you for the video, it was really nice!
Could you just use the set and get a random index in the range of the set instead
Wait I immediately recognized this is insert delete random O(1) from watching so many of your videos