How I Approach a New Leetcode Problem (live problem solving)

  Рет қаралды 71,239

NeetCodeIO

NeetCodeIO

Күн бұрын

🚀 neetcode.io/ - A better way to prepare for Coding Interviews
@Algorithmist - Channel from video
🧑‍💼 LinkedIn: / navdeep-singh-3aaa14161
🐦 Twitter: / neetcode1
⭐ BLIND-75 PLAYLIST: • Two Sum - Leetcode 1 -...
0:00 - How Scott Wu approaches problems
2:52 - Trying to solve a new LC Hard
6:05 - Understanding examples
12:10 - I got stuck
15:35 - Looking at Solution
21:39 - Lessons Learned
#neetcode #leetcode #python

Пікірлер: 113
@NeetCodeIO
@NeetCodeIO Ай бұрын
Just wanted to mention that there's almost a zero % chance you will get asked a question this difficult by almost any company. The reason I picked such a hard one is because I wanted to find one I wouldn't be able to solve. The purpose of this video is to show you my live problem solving skills, which is something I don't normally show in my videos. Hopefully it's helpful for you in some way to improve your own problem solving skills.
@SorwestOuO
@SorwestOuO Ай бұрын
This is very useful to know how you approach questions. Is it a good idea to add this part in your neetcode videos? Like explaining why you would think of "dp,sliding window,graph" from "the pattern you see in the question". Or sth like "If you see there is an array, and you need to find subarrays, you probably need sliding window" "if points or nodes are traversable, maybe try graph".
@bigbigdog
@bigbigdog Ай бұрын
Never say never. Tech interview have been getting harder and harder over the last decade. There might be companies who'd think this is a good question to ask in the near future.
@Algorithmist
@Algorithmist Ай бұрын
There are definitely problems I consider "politely get up, say good bye and leave the interview" problems, like this one! Thanks for including me in your video!
@NeetCodeIO
@NeetCodeIO Ай бұрын
Thanks for explaining all those contest problems, I don't know of anyone with as many videos on them as you!
@Leonhart_93
@Leonhart_93 Ай бұрын
i don't think you should quit before it's over even with this type of problen. At the interview of my first programming job there was a question I didn't knew at all and one I only solved partially. But I still gave my best shot to solve and explain everything, and the interviewer stated that I had talent for programming and they accepted me.
@Algorithmist
@Algorithmist Ай бұрын
@@Leonhart_93 well, for me it is because I recognize immediately how difficult this problem is, and for an interviewer to give this as a problem is probably a bit of a red flag in a few ways.
@Leonhart_93
@Leonhart_93 Ай бұрын
​ @Algorithmist Don't count on such things, you should always give your best shot. Some interviewers might test tenacity or something. If you don't like their character you can reserve the right to change your mind later. Just do your best in the present, there is no reason not to try some more since your are already there. Even if it is out of principle.
@Algorithmist
@Algorithmist 29 күн бұрын
@@Leonhart_93 Sir, I have 20+ years of experience in tech, I do not have trouble with interviews, and I do not appreciate interviewers wasting my time. This is my principle.
@umeshhbhat
@umeshhbhat Ай бұрын
I'd need 45 mins just to understand the problem statement!
@LiveAndLaugh524
@LiveAndLaugh524 Ай бұрын
Real
@a.m.4154
@a.m.4154 Ай бұрын
I usually ignore those types of questions. It makes no sense to put a 15 minute timer on a question that will take 45-60 mins to decode.
@zorxey3189
@zorxey3189 Ай бұрын
​@@a.m.4154yet a handful of talented people manage to solve problems like these in 15 minutes (scott wu from the intro for example). Built different
@aditya3984
@aditya3984 Ай бұрын
fr bro. wtf is this
@DRAGON-in8px
@DRAGON-in8px Ай бұрын
It's been 2 hours and I still didn't understand the question 😅😅😅
@sayakghosh9247
@sayakghosh9247 Ай бұрын
Did not know how to approach any problem on leetcode, so glad I found your channel and now I am already pretty good at interviews
@tasheemhargrove9650
@tasheemhargrove9650 Ай бұрын
Tons of respect to neetcode for posting this. This just reminds us that you can’t get better without failing first. You can’t avoid failure on the long road to improvement. And no one can avoid this. The people who are ranked top 5 on leetcode are cracked out though lol they solved that last problem in half the time the guy who is ranked 88 did. Interestingly though, he solved the first 3 problems as fast or faster than them.
@pluto8404
@pluto8404 Ай бұрын
its like in college and the professor is like "I spent the last 19 years researching this topic and finding an elegant solution to this problem, you have 60 minutes and your time starts now"
@Cahangir
@Cahangir Ай бұрын
or a more honest statement: " Only after 19 years, i found someone on the internet who had a better solution"
@egor.okhterov
@egor.okhterov 26 күн бұрын
No
@tranpaul4550
@tranpaul4550 23 күн бұрын
Also, you have to solve 2 of that and another easier problem in 90 minutes. Also, all classes exam will be like that.
@ax5344
@ax5344 Ай бұрын
@15:40 "back in my days, there weren't a bunch of helpful videos" --- You are so right. Before you, I cannot consistently find good video solutions. They were just spending like 40 minutes to explain some algorithm but no reference to the actual implementation. Or, they just shared their coding process, no explanation of why. You transformed the field!
@walkastray007
@walkastray007 Ай бұрын
Hey neetcode. Another good video. Really like the points you made. Something that I've noticed is that a lot of the topics you cover and discuss are really difficult things to explain to other people. Like how do you explain how you "know" something? You kind of just do. Your brain naturally and subconsciously internalized a bunch of solutions and a bunch of "mini-skills" that you can use to solve problems. Some of these skills are like sliding window, DFS and BFS, but another example of a skill that is even more subconscious was at 16:44 where you say "that math wise in my head makes sense because I've done it a bunch of times". Being innately good at something does go a long way. But as you said near the end of the video. Practice is key in becoming even better. People like scott wu seemed to have a natural ability for math and competitive programming, but at the same time they also had a lot of practice and time spent on it. Spending time doesn't entirely mean that people will get better. It's also how well the time is spent. People can learn better when they come up with the solution themselves. But they also want to "cut their losses" so they can get more experience by solving more leetcode problems. But there's no better practice than going on the website neetcode.io to prepare for your coding interviews. Thank you and have a good day.
@itsjustramblings
@itsjustramblings Ай бұрын
Thanks for putting this video out there, much needed perspective for understanding various challenges involved👍✌.
@TutorialTechie
@TutorialTechie Ай бұрын
Thanks neet i needed this 😭. I was always doubting myself why can't i solve some problems.
@marioh.
@marioh. Ай бұрын
dude you are such a big inspiration, my biggest appreciations
@SC2Edu
@SC2Edu Ай бұрын
Great video and thanks about the honesty!
@user-xz2lc8ni5l
@user-xz2lc8ni5l Ай бұрын
Thank you very much also for videos of this type, I was able to learn quite a lot, thank you for your honesty and transparency.
@sslvsme5763
@sslvsme5763 Ай бұрын
If I get stuck on what the question is asking me to do I just move on to the next question immediately and come back later and often times I find my understanding through doing more leetcode problems, better. For things I do understand and pass almost all test cases on the first go I like to spend my time figuring it out myself. But for questions I understand but don’t know how to code the solution I would just go look for solutions or hints or KZbin videos right away.
@miserablepile
@miserablepile 10 күн бұрын
This was huge, thank you for sharing
@eofirdavid
@eofirdavid 6 сағат бұрын
My way of viewing problems in general, and in this in particular, is trying simple examples until I get some intuition and then make them harder and harder until I have the full solutions. For example, here you should take an array without any banned places and see what happens as a function of n,k,p. First, we can immediately see a different behavior whether k is even or odd. When k is even, then p is even\odd means its neighbors are odd\even. If k is odd, then you keep the parity. Second, if k is small and you track the nodes that you visited, you will more or less see a segment which keeps increasing. On the other hand, if k is large (say 0.9n) and p is near the edges of the array, then you will get two increasing segments for even and odd distances. Adding back the banned positions, you actually get the same behavior only these positions can stop the growth of these segments. So now, the solution needs only to track the sizes of the segments as they increase, and mark the distance from p using the reversal window.
@sandeepsrinivas7
@sandeepsrinivas7 26 күн бұрын
This isn't programming, this is figuring out math formulas.
@Toulkun
@Toulkun 14 күн бұрын
Heh thats half of Leetcode lol
@divingdabbler2035
@divingdabbler2035 Ай бұрын
Great video! Just a tip: Will be easy for us if you also put the leetcode problem link in the description.
@ax5344
@ax5344 Ай бұрын
There was a validate xml sort of question on Leetcode. It has a very complex description and my patience was wore off when reading it. So I scrolled to the "discussion" section. There the comment that got 200+ likes is "They don't want to hire you. You want to work for them" :-) That's exactly what I thought if I see myself in an interview being posed a problem like that. Some interviewers say they almost already declined the candidate at heart but decided to offer the candidate a last chance by throwing a hard problem. If the candidate can solve it, the interviewers say they will revert their previous judgement and give a pass to the candidate. I cannot comment on that, but I don't feel good about it.
@stith_pragya
@stith_pragya 14 күн бұрын
Thank You So Much for this wonderful video.......🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻
@byduhlusional
@byduhlusional Ай бұрын
I love Larry, he's a great dude. Also, Neetcode, have you considered doing the weekly contests and uploading the videos for that? I'm not sure, maybe you feel like it would be too much work but it could be interesting too.
@TRiToNDREyJA
@TRiToNDREyJA 21 күн бұрын
This problem is crazy as hell. I'd probably be able to solve it (was comfortable with the scope just before solution was shown), but only because ive spent near 60 hours in the last 3 weeks trying ti make a custom suffiz array algorithm. Its 3am but this made me want to go back to my desk and browse LOL
@ShashiKanthvarma-lb6xb
@ShashiKanthvarma-lb6xb Ай бұрын
This video is very important, to make, I value this one
@joydeeprony89
@joydeeprony89 Ай бұрын
Getting this during interview 😢
@asagiai4965
@asagiai4965 Ай бұрын
These are my opinions. * My first thought on this is. If you can sort without moving those in the banned position. Though that was wrong. 1.) The importance of simplifying or making a problem understandable. I bet most people spend 30 mins or more just figuring out the problem statement. 1.2) The importance of naming things. Like maybe banned is actually called banned_index or k should be called differently. 2.) Good examples are a must. I don't know if this is hard because of bad examples or bad because of too few good examples. 3.) Companies should understand not everyone wants to be a competitive programmer or want to be a leetcode solver. It's fine if you want it. But don't make it a priority for qualification. DS and Algo should be priotize more. 4.) The benefit for the problem. If you give this type of problem to your applicants. Is there a benefit if someone solves this problem? Or are you just giving hard problem for the sake of it? If your company always or most of the times encounter this problem go for it. But if not, it is just a waste of time for you and your applicants.
@Threshk
@Threshk Ай бұрын
If you can't solve it, then what hope do the rest of us have?
@zen5882
@zen5882 Ай бұрын
The hope is that he's not a super genius that is at an unreachable level.
@omkarbhale442
@omkarbhale442 Ай бұрын
Have some confidence man we haven't spent (i haven't had) 1500 hours on this, so of course we can't.
@ShubhamMIshra-hv5nz
@ShubhamMIshra-hv5nz Ай бұрын
😂😂
@hypermeero4782
@hypermeero4782 Ай бұрын
to realize that everyone is the same, just keep solving, keep revising, keep grasping the concepts and patterns and HOPE that interviews you get something you can break through or remember its pattern. I solved about 600 leetcode problems, and now I am doing a resolving to most of them and doing the problem plans. trust me i get stuck on problems i know how to solve. it's okay, it really is, just keep going, keep exploring all patterns that exist and keep trying to practice them. and most of all, try getting better at identifying the pattern of the problem.
@asagiai4965
@asagiai4965 Ай бұрын
OP, you can still try to solve it or at least think of what's happening. After you done your best and still won't work . Then I guess that's the time to give up or look at solutions. But Don't be too dependent or too comparing to another.
@hadi-yeg
@hadi-yeg Ай бұрын
Do you suggest reviewing Cormen's book? It's been a while for me since I had my algorithms course. What are your thoughts?
@phoneix24886
@phoneix24886 27 күн бұрын
11 years as a software engineer and failing 3 faang interviews 😅 .. I can say that this is absolutely genuine advice to newbies in programming and leetcode.
@mukeshrawat1304
@mukeshrawat1304 Ай бұрын
Hey @NeetCode, just a thought in my head. Could we have the daily problem videos based on the same template as this, where you would not come up with a solution and explain why it works, rather, just record yourself going through the problem, how could you approach a problem, if you thought this could be solved using XYZ algo then why that's the case. It would definitely help us, as most of us don't just come up here to see the solution, but to understand the intuition/approach and that big WHY? and how you could think of this approach. Secondly, it would obviously be fresh content for your channel, coz, as much as I love Neetcode videos, they have been the same for last 3 years. So, guess its time we update the template/format of daily LC problems. With the face cam on, and all those hand gestures, I am never going to forget any of the stuff you explain 😅
@honey-xr5kp
@honey-xr5kp Ай бұрын
1. I enjoy it, 2. its good for interviews, and 3. I enjoy it lol love it and thanks for the videos
@Ari-pq4db
@Ari-pq4db Ай бұрын
Where can I watch your streams bro !?
@birdbeakbeardneck3617
@birdbeakbeardneck3617 Ай бұрын
i ve seen you solve some leetcode easy and normals and was thinking hiw can one come up with such optimisation, then saw this problem and almost had the solution (minus the parity bypass in case k is odd).Like what, barely felt it hard, then cant do easy sometimes
@monkeyDluffy-sd3zp
@monkeyDluffy-sd3zp Ай бұрын
do you solve advent of code?
@Ryan-tb7pp
@Ryan-tb7pp Ай бұрын
This is a goated video not gonna lie
@atrus3823
@atrus3823 28 күн бұрын
I managed to get this with some effort. Like others have said, just understanding the problem took half the time. The big insight for me was realizing that reversing the subarray is kind of a red herring. Since your input array is all zeros except for at p, reversing is really just swapping, which you can conceptually reduce to hops of size k - 1. Position i is abs(i - p) elements from p, so you can check if i is reachable simply by checking if abs(i - p) % (k - 1) and i not in banned. If reachable return num steps which is just abs(i - p) // (k - 1). I realized searching for i in banned makes this O(n^2), but this is easily fixable by converting banned to a set.
@atrus3823
@atrus3823 28 күн бұрын
Just realized I missed the fact banned indices can never be 1. I’ll have to rework a bit.
@atrus3823
@atrus3823 28 күн бұрын
Okay, missed a couple things, for example swapping when 1 not at ends of subarray.
@atrus3823
@atrus3823 27 күн бұрын
Started again, and I'm pretty sure I solved it, because it passes 694/711 tests, but runs out of time on 695, which has n = 100000 😆 This time I stuck with my initial insight that we're basically moving the 1 around, but added the idea that sometimes you're not moving from one end of subarray to other After drawing the movements out, it became pretty apparent this was a graph problem. Since it was undirected, unweighted, I used a basic BFS. That left the tricky part building the graph. I just wrote out a bunch of graphs by hand (not worrying about banned elements) and looked for a pattern. I ended up noticing that there are two variables that determine where you can jump: where the subarray starts and where the source element is in the subarray. Without getting into two many details, I found simple formulas for finding the end points of an edge based on these two values. This part is really quick and completes the graph super fast. The BFS is the slow part. Since I don't think you can do better than BFS, I think there is either a fundamentally different solution, or I just need to use a faster language, maybe I'll try rewriting it in C.
@atrus3823
@atrus3823 22 күн бұрын
Even though I doubt anyone's reading this, for completeness, I'll follow up on what I tried. I did try writing in C, the first time, I got to the same test case, but this time ran out of memory. I changed the data structures for some of the graph stuff, and then ran out of time again 😩. At this point, I decided to give up. Fun challenge though!
@rohitkumarpilania94
@rohitkumarpilania94 Ай бұрын
Larry is so underrated
@jst8922
@jst8922 Ай бұрын
hint: there are 3 hints below 1 Can we use a breadth-first search to find the minimum number of operations? 2 Find the beginning and end indices of the subarray of size k that can be reversed to bring 1 to a particular position. 3 Can we visit every index or do we need to consider the parity of k?
@Unfilteredtao
@Unfilteredtao Ай бұрын
I even don't know what is leetcode and fuck i watching it🤣🤣
@gustavoh5143
@gustavoh5143 Ай бұрын
leetcode is a website with programming questions
@jst8922
@jst8922 Ай бұрын
The guy nc mentioned in last minute www.youtube.com/@Algorithmist Among his 3600 videos, only 18 are not from leetcode (but from Advent of Code 2023).
@Algorithmist
@Algorithmist Ай бұрын
I thought I had more, but it's not very common!
@justintang6313
@justintang6313 Ай бұрын
is this video a clip from a livestream?
@piotrek7633
@piotrek7633 22 күн бұрын
The problem is, is that the problem is very lengthy and complicated, it should provide images, alternate explanations, so you can fully understand the problem, spitting everything out without organising it is just timewasting behaviour. I guess this is an excersise site so its your job to do it
@tharunr42
@tharunr42 Ай бұрын
Hi Neato!
@MBXD001
@MBXD001 Ай бұрын
16% acceptance; not touching it with a 10foot pole for now., i sort questions in descending order.
@AnhNguyen-vb1fk
@AnhNguyen-vb1fk 27 күн бұрын
Neetcode i completely agree with you. Codeforfces is more about creative thinking and it is very hard to force creative thinking unless you manage to come up with a solution within the first five minutes - 10 miuntes. If you don't come up with an idae within the first 5 to 10 minutes you might as well give up cuz its codeforces not leetcode.
@kiuki42
@kiuki42 Ай бұрын
Are these really in interviews for tech companies? How does the interviewer knows what questions to throw at candidates?
@nomad_1997
@nomad_1997 Ай бұрын
I didn't understand anything, but hey at least you're a mere mortal like the rest of us! :P
@kingthame
@kingthame Ай бұрын
Scott Wu is now reaching Linus levels of dominon
@tuber694
@tuber694 Ай бұрын
What is he using to draw on the screen?
@sukapow
@sukapow Ай бұрын
Classic paint. He took a screenshot and use paint
@akiyamamizuki3
@akiyamamizuki3 Ай бұрын
This problem in fact seems as Div.2D or even harder from Codeforces, I believe
@Donquixote-Rosinante
@Donquixote-Rosinante Ай бұрын
What is the equivalent rating of this problem in codeforces?
@akiyamamizuki3
@akiyamamizuki3 Ай бұрын
​@@Donquixote-Rosinante 1800-2000, I believe. It can be considered as an easy Div.2D problem in my opinion
@agtonybarletta
@agtonybarletta Ай бұрын
Pleas give credits to The Larry's channel: Algorithmist
@NeetCodeIO
@NeetCodeIO Ай бұрын
Done
@juanmacias5922
@juanmacias5922 Ай бұрын
Larry!
@ri_re_po
@ri_re_po 28 күн бұрын
I stopped the video to understand the problem. Never played it again.
@joe5head
@joe5head Ай бұрын
already lost just having to decipher the 1st paragraph, it's written so poorly
@pastori2672
@pastori2672 Ай бұрын
imagine getting that in an interview
@asagiai4965
@asagiai4965 Ай бұрын
If you get this and you think the company you are applying for don't need this. In my opinion, just walk away from that company. Just find another one.
@pastori2672
@pastori2672 Ай бұрын
@@asagiai4965 for real
@jameshello38
@jameshello38 Ай бұрын
tourist: Hold my Google jam medals
@floatingsaint8493
@floatingsaint8493 19 күн бұрын
Why leetcode problem are so hard to understand The question itself is not worded correctly
@mo938
@mo938 Ай бұрын
Why don’t you look at the hints?
@dampdigits.69
@dampdigits.69 Ай бұрын
Understanding a few edge cases of this problem may be difficult let alone a given solution.. and let's not talk about solving it lol
@MichaelJordan-hi4ed
@MichaelJordan-hi4ed Ай бұрын
Yes you could never solve this one
@lolgreek123
@lolgreek123 Ай бұрын
Quite depressing. If even Neetcode stumbles....what hope there is for me?
@NeetCodeIO
@NeetCodeIO Ай бұрын
I promise you no one has gotten this question in their interview. Unless you're trying to be a competitive programmer, the most intelligent decision you can make is to ignore this problem.
@chris0714ful
@chris0714ful Ай бұрын
You completely missed the point of the video.
@jst8922
@jst8922 Ай бұрын
@@NeetCodeIONext year it will be standard junior question :P !
@WoWUndad
@WoWUndad Ай бұрын
nice nvidia eye tracking fakery we can all see the chatgpt on ur other monitor
I Solved 1583 Leetcode Questions  Here's What I Learned
20:37
ThePrimeTime
Рет қаралды 460 М.
The only Cloud services you actually need to know
17:17
NeetCodeIO
Рет қаралды 71 М.
Creators of Devin AI are genius competitive programmers?
20:23
NeetCodeIO
Рет қаралды 148 М.
Programmers in 2024 have no Deep Knowledge
8:38
NeetCodeIO
Рет қаралды 130 М.
Subarrays with K Different Integers - Leetcode 992 - Python
17:31
My Brain after 569 Leetcode Problems
7:50
NeetCode
Рет қаралды 2,3 МЛН
This is Why Programming Is Hard For you
10:48
The Coding Sloth
Рет қаралды 398 М.
Top 7 Algorithms for Coding Interviews Explained SIMPLY
21:22
Codebagel
Рет қаралды 218 М.
Lessons I Regret not knowing as a Software Engineer in My 20s
12:10
Harkirat Singh
Рет қаралды 200 М.
Twitter actually shipped this trivial security issue
8:47
NeetCodeIO
Рет қаралды 107 М.
Yes, I was also Bad at LeetCode
3:20
NeetCodeIO
Рет қаралды 109 М.