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

🚀 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

Пікірлер: 116

  • @NeetCodeIO
    @NeetCodeIO2 ай бұрын

    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

    2 ай бұрын

    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

    2 ай бұрын

    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
    @Algorithmist2 ай бұрын

    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

    2 ай бұрын

    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

    2 ай бұрын

    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

    2 ай бұрын

    @@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

    2 ай бұрын

    ​ @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

    Ай бұрын

    @@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
    @umeshhbhat2 ай бұрын

    I'd need 45 mins just to understand the problem statement!

  • @LiveAndLaugh524

    @LiveAndLaugh524

    2 ай бұрын

    Real

  • @a.m.4154

    @a.m.4154

    2 ай бұрын

    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

    2 ай бұрын

    ​@@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

    2 ай бұрын

    fr bro. wtf is this

  • @DRAGON-in8px

    @DRAGON-in8px

    2 ай бұрын

    It's been 2 hours and I still didn't understand the question 😅😅😅

  • @sayakghosh9247
    @sayakghosh92472 ай бұрын

    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
    @tasheemhargrove96502 ай бұрын

    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.

  • @ax5344
    @ax53442 ай бұрын

    @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!

  • @pluto8404
    @pluto84042 ай бұрын

    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

    2 ай бұрын

    or a more honest statement: " Only after 19 years, i found someone on the internet who had a better solution"

  • @egor.okhterov

    @egor.okhterov

    Ай бұрын

    No

  • @tranpaul4550

    @tranpaul4550

    Ай бұрын

    Also, you have to solve 2 of that and another easier problem in 90 minutes. Also, all classes exam will be like that.

  • @walkastray007
    @walkastray0072 ай бұрын

    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.

  • @marioh.
    @marioh.2 ай бұрын

    dude you are such a big inspiration, my biggest appreciations

  • @TutorialTechie
    @TutorialTechie2 ай бұрын

    Thanks neet i needed this 😭. I was always doubting myself why can't i solve some problems.

  • @SC2Edu
    @SC2Edu2 ай бұрын

    Great video and thanks about the honesty!

  • @sslvsme5763
    @sslvsme57632 ай бұрын

    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 KZread videos right away.

  • @itsjustramblings
    @itsjustramblings2 ай бұрын

    Thanks for putting this video out there, much needed perspective for understanding various challenges involved👍✌.

  • @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.

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

    Thank You So Much for this wonderful video.......🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻

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

    Great video! Just a tip: Will be easy for us if you also put the leetcode problem link in the description.

  • @eofirdavid
    @eofirdavid26 күн бұрын

    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.

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

    This was huge, thank you for sharing

  • @byduhlusional
    @byduhlusional2 ай бұрын

    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.

  • @ax5344
    @ax53442 ай бұрын

    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.

  • @asagiai4965
    @asagiai49652 ай бұрын

    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.

  • @ShashiKanthvarma-lb6xb
    @ShashiKanthvarma-lb6xb2 ай бұрын

    This video is very important, to make, I value this one

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

    This isn't programming, this is figuring out math formulas.

  • @Toulkun

    @Toulkun

    Ай бұрын

    Heh thats half of Leetcode lol

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

    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

  • @Threshk
    @Threshk2 ай бұрын

    If you can't solve it, then what hope do the rest of us have?

  • @zen5882

    @zen5882

    2 ай бұрын

    The hope is that he's not a super genius that is at an unreachable level.

  • @omkarbhale442

    @omkarbhale442

    2 ай бұрын

    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

    2 ай бұрын

    😂😂

  • @hypermeero4782

    @hypermeero4782

    2 ай бұрын

    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

    2 ай бұрын

    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.

  • @joydeeprony89
    @joydeeprony892 ай бұрын

    Getting this during interview 😢

  • @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

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

    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.

  • @vetiarvind
    @vetiarvind5 күн бұрын

    props for keeping it real neet

  • @hadi-yeg
    @hadi-yeg2 ай бұрын

    Do you suggest reviewing Cormen's book? It's been a while for me since I had my algorithms course. What are your thoughts?

  • @Unfilteredtao
    @Unfilteredtao2 ай бұрын

    I even don't know what is leetcode and fuck i watching it🤣🤣

  • @gustavoh5143

    @gustavoh5143

    2 ай бұрын

    leetcode is a website with programming questions

  • @mukeshrawat1304
    @mukeshrawat13042 ай бұрын

    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 😅

  • @jst8922
    @jst89222 ай бұрын

    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?

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

    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

    Ай бұрын

    Just realized I missed the fact banned indices can never be 1. I’ll have to rework a bit.

  • @atrus3823

    @atrus3823

    Ай бұрын

    Okay, missed a couple things, for example swapping when 1 not at ends of subarray.

  • @atrus3823

    @atrus3823

    Ай бұрын

    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

    Ай бұрын

    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!

  • @Ryan-tb7pp
    @Ryan-tb7pp2 ай бұрын

    This is a goated video not gonna lie

  • @monkeyDluffy-sd3zp
    @monkeyDluffy-sd3zp2 ай бұрын

    do you solve advent of code?

  • @Ari-pq4db
    @Ari-pq4db2 ай бұрын

    Where can I watch your streams bro !?

  • @jst8922
    @jst89222 ай бұрын

    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

    2 ай бұрын

    I thought I had more, but it's not very common!

  • @tharunr42
    @tharunr422 ай бұрын

    Hi Neato!

  • @rohitkumarpilania94
    @rohitkumarpilania942 ай бұрын

    Larry is so underrated

  • @justintang6313
    @justintang63132 ай бұрын

    is this video a clip from a livestream?

  • @birdbeakbeardneck3617
    @birdbeakbeardneck36172 ай бұрын

    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

  • @nomad_1997
    @nomad_19972 ай бұрын

    I didn't understand anything, but hey at least you're a mere mortal like the rest of us! :P

  • @AnhNguyen-vb1fk
    @AnhNguyen-vb1fkАй бұрын

    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.

  • @MBXD001
    @MBXD0012 ай бұрын

    16% acceptance; not touching it with a 10foot pole for now., i sort questions in descending order.

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

    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

  • @kingthame
    @kingthame2 ай бұрын

    Scott Wu is now reaching Linus levels of dominon

  • @agtonybarletta
    @agtonybarletta2 ай бұрын

    Pleas give credits to The Larry's channel: Algorithmist

  • @NeetCodeIO

    @NeetCodeIO

    2 ай бұрын

    Done

  • @tuber694
    @tuber6942 ай бұрын

    What is he using to draw on the screen?

  • @sukapow

    @sukapow

    2 ай бұрын

    Classic paint. He took a screenshot and use paint

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

    I stopped the video to understand the problem. Never played it again.

  • @juanmacias5922
    @juanmacias59222 ай бұрын

    Larry!

  • @akiyamamizuki3
    @akiyamamizuki32 ай бұрын

    This problem in fact seems as Div.2D or even harder from Codeforces, I believe

  • @Donquixote-Rosinante

    @Donquixote-Rosinante

    2 ай бұрын

    What is the equivalent rating of this problem in codeforces?

  • @akiyamamizuki3

    @akiyamamizuki3

    2 ай бұрын

    ​@@Donquixote-Rosinante 1800-2000, I believe. It can be considered as an easy Div.2D problem in my opinion

  • @kiuki42
    @kiuki422 ай бұрын

    Are these really in interviews for tech companies? How does the interviewer knows what questions to throw at candidates?

  • @zaidsiddiqui9091
    @zaidsiddiqui909112 күн бұрын

    1:54

  • @joe5head
    @joe5head2 ай бұрын

    already lost just having to decipher the 1st paragraph, it's written so poorly

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

    Why leetcode problem are so hard to understand The question itself is not worded correctly

  • @pastori2672
    @pastori26722 ай бұрын

    imagine getting that in an interview

  • @asagiai4965

    @asagiai4965

    2 ай бұрын

    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

    2 ай бұрын

    @@asagiai4965 for real

  • @dampdigits.69
    @dampdigits.692 ай бұрын

    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

  • @jameshello38
    @jameshello382 ай бұрын

    tourist: Hold my Google jam medals

  • @mo938
    @mo9382 ай бұрын

    Why don’t you look at the hints?

  • @MichaelJordan-hi4ed
    @MichaelJordan-hi4ed2 ай бұрын

    Yes you could never solve this one

  • @ScribbleDribble
    @ScribbleDribble25 күн бұрын

    Wtf is this solution 😂 absolutely insane

  • @lolgreek123
    @lolgreek1232 ай бұрын

    Quite depressing. If even Neetcode stumbles....what hope there is for me?

  • @NeetCodeIO

    @NeetCodeIO

    2 ай бұрын

    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

    2 ай бұрын

    You completely missed the point of the video.

  • @jst8922

    @jst8922

    2 ай бұрын

    @@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