LeetCode Exercise in Java Tutorial - Two Sum FAST Solution

Поделиться
HTML-код
  • Опубликовано: 19 дек 2024

Комментарии • 462

  • @BlazingStar2001
    @BlazingStar2001 2 года назад +186

    Doing more these kinds of things is very helpful, especially how u approach them. Teachers normally tell us the optimal solution but how to get to that or how to come up with that solution is not normally taught to us.

  • @danielaviv8215
    @danielaviv8215 2 года назад +325

    Please do this kind of videos more!

  • @manosmakris8308
    @manosmakris8308 2 года назад +85

    Do more of these kind of videos because your thought process make me think in a different way than before.

  • @wadebrumbaugh7579
    @wadebrumbaugh7579 Год назад +8

    I thought of your initial solution right away but would have NEVER thought of the better way. These types of videos are EXTREMELY helpful in reprogramming the way I look at a problem. Thank you!!

    • @maaax573
      @maaax573 Год назад

      Comments like this help me understand that its ok that I couldnt come up with that second solution on my own. Thank you.

  • @Michaelpschreib
    @Michaelpschreib 11 месяцев назад +1

    As a mostly self taught dev, I really appreciate your content. It has helped me grasp concepts I've been struggling with for a very long time. Thank you!!

  • @kevin_mitchell
    @kevin_mitchell 5 месяцев назад

    9:44 The solution will return [2, 2] for a target off 8 which is incorrect since the same element is used twice.
    The code for the "i" should be for (int i = 0; i < nums.length - 1; i++) {...} For the i, j loop version.

  • @memesv3.093
    @memesv3.093 2 года назад +25

    Thanks a lot John. Please start a Leetcode series, your way of explanation is flawless

  • @omarkabada2923
    @omarkabada2923 2 года назад +28

    Yes, more videos like this would be amazing because you don't only solve the challenges, but explain the thinking behind it.

    • @MohitKhare
      @MohitKhare Год назад

      well said sir ! Even I can understand the concepts quite easily and I'm not a native english speaker.

  • @tangobee
    @tangobee 2 года назад +1

    really this is soo awesome because i just started doing leetcode and i wanted someone who can guide me and here you are like a angel :D

  • @Riv3rt
    @Riv3rt 2 года назад +54

    Love these algorithm video's personally, keep'em coming! Of course all your tutorials are also awesome- so I guess just keep up the good work!

  • @neeldiyora3575
    @neeldiyora3575 2 года назад +1

    I'm new to this channal. Before I saw this video I don't knew what is really hashmap is but after seeing this..... Nothing to say.
    This video is really helpful.
    Thank's for creating this awesome video.

  • @stefans6557
    @stefans6557 2 года назад +1

    From what I know first solution is: O(n*(n-1)/2) and for the outer loop you should do: for (int i = 0; i < nums.length - 1; i++)
    Of course it still can be simplified to O(n²) - but never really understand why. I mean it's quadratic, but still quite a reasonable difference to loop i and j from 0 to end. (about half the time of O(n²), which I think is still a difference, especially if it is longer, like from 20 mins to 10 mins)

  • @GuessWhos
    @GuessWhos 2 года назад +8

    Please, keep doing this leetcode content. There is not good leetcode videos in Java, so this is gold!

  • @zoflax
    @zoflax 2 года назад +11

    honestly a weekly leetcode video like this would be so good. Please do more!

  • @being_rizwan
    @being_rizwan 2 года назад +6

    Please do this kind of videos.
    It helps alot to understand the problem

  • @محمد-م5ث1ش
    @محمد-م5ث1ش 2 года назад +6

    We want more leetcode questions! you're an expert in teaching. Thanks a lot.

  • @Gabriel-bu1qq
    @Gabriel-bu1qq 4 дня назад

    You explaing this problems better than no one else John! Go foward on this types of video!

  • @MatthewWeiler1984
    @MatthewWeiler1984 2 года назад +8

    Great solution.
    You can decrease the memory footprint by not bothering storing the complement/index of values that are greater than the target as those would require negative numbers to achieve the target.

    • @tonypsilon_gaming3221
      @tonypsilon_gaming3221 2 года назад +4

      Well, the problems only states integers, so they might as well be negative, or?

    • @MatthewWeiler1984
      @MatthewWeiler1984 2 года назад +1

      @@tonypsilon_gaming3221 Fair enough.
      But 1 question that I would ask is if negative numbers are possible in the source array.
      But since this is an online test, which can be submitted multiple times, I'd assume as much and run my answer to see if it fails any test cases... If it passes all test cases, then I would add a comment explaining the optimization.

  • @talk9415
    @talk9415 2 года назад +1

    please stop, you have some very good java vids, super useful. for any leetcode question you can find million solutions.

  • @joryroberts2518
    @joryroberts2518 2 года назад +7

    More of these types of videos would be fantastic! Your explanations throughout all of your videos are incredible, and I just started tackling coding challenges and I've been struggling with how to even begin. Appreciate your channel so much!

  • @nabeelrehman5451
    @nabeelrehman5451 2 года назад +1

    Was just solving this problem and your video came in. Thanks and would love to watch more videos on leet code problems.

  • @DevSofo
    @DevSofo 2 года назад +1

    So happy i found your channel...😎 premium value ✌️✌️✌️

  • @SrikanthNalla17
    @SrikanthNalla17 2 года назад +1

    Yes
    Please add more videos of leetcode problems

  • @upzaiz8095
    @upzaiz8095 2 года назад

    Yes.. Nice. Coding is not just getting the correct result. But it also getting the result in correct/optimal way. Please deliver this type of videos which really brain storm and change the thinking way of coding.

  • @hinocenciopaulo
    @hinocenciopaulo 2 года назад +4

    Dude!! Thanks a lot for this video!! I was straggling with this same question in the AlgoExpert, and I couldn’t understood the Clément's explanation. You explained SO MUCH better, and for free... Please launch a course of Algorithms and Data Structure. I'll definitely pay for that.

  • @EstrellasBakery
    @EstrellasBakery Год назад

    I really appreciate the message you start to give at 21:57 - I have been feeling very discouraged as of late trying to sharpen my problem solving skills and it was very comforting to hear that. Thank you!

  • @santiagoaristi2808
    @santiagoaristi2808 2 года назад +1

    Thank you John for taking the time in creating this video! Please do more of these videos as it teaches problem solving skills and how to walk through the creation of an algorithm. Thanks!

  • @hassansiddiqui8231
    @hassansiddiqui8231 Год назад

    I have to agree with the majority of the other comments - your explanations of algorithms for solving LeetCode solutions (well, in general good software algorithms) are some of the clearest I've seen. This is probably going to be a new subcategory of videos that you might not have planned to do, but I can see there's so much interest you have no choice but to do them! (Please?)

  • @JRC.40.31
    @JRC.40.31 7 месяцев назад

    It took me a week to "sink in " but I solved my first leetcode with this video , thanks God this video Exist and Thank you John for creating such an amazing video .

  • @anthony68759
    @anthony68759 2 года назад +2

    All of your videos have been so incredibly helpful to a career changing CS student like myself! Leetcode has always seemed super intimidating but your teaching style really makes them seem doable. Please do more like this!

  • @amaralensheriff
    @amaralensheriff Год назад

    I had to rewatch the last section as you suggested to finally get it, thanks again John. You are the man.

  • @christianolsson8644
    @christianolsson8644 2 года назад +5

    I definitely want more videos like this! You're an excellent teacher. I'm trying to get a job as a Java developer and I'm freshening up my knowledge. I will always come back to your videos. They are fun, interesting topics, easy explained and very helpful! 😃

    • @Ольга-ж5к4й
      @Ольга-ж5к4й 2 года назад

      If you struggle with finding a first job, try to look for testers, then get to automate tester, then you will be a perfect java coder because you know how stuff should work.
      Requirements for junior tester are so little, it is easy to apply

  • @SailBuddha
    @SailBuddha 2 года назад +2

    Never thought about a solution like that before. This is a very useful tool to add to the tool box. Thanks!

  • @fojirngers3661
    @fojirngers3661 2 года назад

    I don't get it, why people don't subscribe and like this guy's channel and videos. He is the best.

  • @narenm.s8923
    @narenm.s8923 2 года назад

    Please do these kind of videos.. because of your great explanation about hashmap now i understood it.. Before i know what is a map, set but i don't know how they actually work..now i know
    Thankyou

  • @soniahandle
    @soniahandle Год назад +1

    A playlist with videos like this would be phenomenal! Thank you for sharing these with us!

  • @sultangaddafi8698
    @sultangaddafi8698 Год назад

    I was stuck for hours looking on how to write the first line of code on such leetcode problems....leetcode can be intimidating but thanks for such content, it really helps!!....please do more especially in java

  • @andrewchang7194
    @andrewchang7194 2 года назад

    Two sum was my first experience to how useful hash maps were. Started using them in all tasks where you need to look at every unique element of an array.

  • @levybuildz
    @levybuildz Год назад

    Just started my Leetcode journey and this was the exact video I needed to feel more confident about trying more problem and being ok about not knowing the best answer or an answer at all. You thoroughly explained 2 ways of solving the Two Sum problem and reassured me that practicing more leetcode will sharpen my eye for finding solutions to coding problems. IMO this is a must watch for all first time leetcoders! Thank you John 🫶

  • @mohsenrezaee9936
    @mohsenrezaee9936 Год назад

    That thing you said at the end... That makes me feel so much better about myself. I used to feel like there's something wrong with me, but it's natural, apparently!

  • @musaddiqmanzoor2044
    @musaddiqmanzoor2044 2 года назад +1

    I've to advocate that we do need more such stuff, @John.

  • @a1esandra
    @a1esandra Год назад

    I really needed to hear that last bit in the end. im a 2nd yr cs student and ab to do my first technical test for an internship n i find them very hard and even thought of dropping out lol. so thank you

  • @mehmetakif8639
    @mehmetakif8639 2 года назад

    Well, i think i can watch these kind of videos whole day without getting bored. Well done. Just perfect.

  • @Andboldquates
    @Andboldquates 2 года назад

    thank you solving problem with deep details, we having mostly trouble to understand , the way how you explain is highly catchable

  • @esmelealemmihretu941
    @esmelealemmihretu941 2 года назад +1

    Please we need such kind more questions! Appreciated!

  • @micleh
    @micleh 2 года назад +1

    In order to create a stash of solutions to common problems, I'd love to see more of such videos, taught by someone who really knows what he's doing and who can teach in a clear and straightforward manner. Thanks for sharing this knowledge.

  • @NandanChhabra91
    @NandanChhabra91 2 года назад +1

    Thank you for covering such problems and that too in detail. We usually don't get such insights when doing things alone. Please park some time for adding such videos regularly. Thank you

  • @istvanuveges5189
    @istvanuveges5189 2 года назад

    Hi John, thank you for the solution, I would have never thought of solving it that way...
    But I did some minor changes to your code:
    public int[] twoSum(int[] nums, int target) {
    HashMap map = new HashMap();
    for (int i = 0; i < nums.length; i++) {
    if (map.containsKey(target - nums[i])) {
    return new int[]{i, map.get(target - nums[i])};
    }
    map.put(nums[i], i);
    }
    return nums;
    }
    and I got these results:
    Runtime: 1 ms, faster than 99.76% of Java online submissions for Two Sum.
    Memory Usage: 42.2 MB, less than 96.76% of Java online submissions for Two Sum.
    :)

  • @jatinkumar7287
    @jatinkumar7287 2 года назад +1

    Plz do this more often I'm learning java so it's very helpful on how to approach leetcode problems. Thanks.

  • @COD_MW007
    @COD_MW007 2 года назад

    I enjoy each and every bit of thing you do. when you write the code, when you feel something about the code and laugh, I laugh too. you are helping me and others who are just in the path of learning java in the best way possible. Huge respect for you Sir!! you just keep doing what you are doing, I am eager to learn a lot of things from you.

  • @UTJunaid
    @UTJunaid 2 года назад

    Please do this kind of video more and more! your explanation is so easy to understand. I got the concept in the first watch only.

  • @pliegosevilla
    @pliegosevilla 2 года назад +1

    Im so grateful you are doing this.
    You are one amazing teacher. It’s so easy to understand code with your explanations.
    Very very grateful.

  • @Bladebreak3r
    @Bladebreak3r 4 месяца назад

    Thanks for the encouragement at the end. My solution is close but not quite optimal. It's O(n) space complexity but O(2n) time complexity. I felt bad about not thinking about the hashmap solution until you gave your encouraging words at the end! Thanks man 🥺

  • @ibrahimwadi6539
    @ibrahimwadi6539 2 года назад +1

    OMG!!!!! man how can you be so good at teaching ??? you just made my day. please keep the videos coming 🙂

  • @sarojmaharjan3986
    @sarojmaharjan3986 2 года назад +4

    Wow do more of these videos ! Love your explanation

  • @santhoshkumar7285
    @santhoshkumar7285 2 года назад +3

    Do a lot more videos like this!!! I love The way you explain it, keep doing this

  • @pejko89
    @pejko89 2 года назад +2

    Simply amazing channel. Gives me so much confidence to keep learning and not to give up.

  • @richardmeyer418
    @richardmeyer418 2 года назад +2

    Thank you. This was super interesting (to me, anyway). Please give us a few of these every now and then - I'm not asking you to make it exclusive, but it was fun.

  • @javo_rocker
    @javo_rocker 2 года назад +3

    That's a great video! I had had struggle finding a solution for that kind of problems and that helps a lot. Thank you so much!

  • @davidzurawski4243
    @davidzurawski4243 2 года назад +1

    Please do more of these leetcode videos!

  • @MohitKhare
    @MohitKhare Год назад

    My freaking God John, that was the best explanation I've found so far on the internet. Sure there could be more ways but the fact that you are able to explain it so easily and also the way you communicate as a speaker is remarkable.
    Keep doing what you do buddy, and thanks a lot. ❤ from INDIA. I feel blessed that we have people like you working with JAVA.

  • @martinnnachi
    @martinnnachi 2 года назад +1

    Would definitely like to see more challenges! Never would've thought about using a hashmap and like you said, one more thing I've learnt. Thanks a million. You're a great teacher!

  • @auniquehandle
    @auniquehandle 2 года назад +1

    Hi John, i love this video. Learning algo on Leetcode is hard even with looking at the solution. However this video helped me understand 2 sum very easily. Thank you

  • @randomname6444
    @randomname6444 Год назад

    This did kind of blow my mind ngl.
    I would've never thought of this solution to the problem.
    Now I wonder where else this method might be applicable.

  • @debasishpradhan9951
    @debasishpradhan9951 2 года назад +4

    Hi John , waiting for the next episode , it will really help to broaden the logical thinking .
    I'm a java developer, but never imagined hashmap can be used in such a way.

  • @Robert723
    @Robert723 Год назад

    I had to check out the HashMap part 3 times. For me personally it's not an easy Programming task :) Thank you for the explanation

  • @aspeno5613
    @aspeno5613 2 года назад

    thanks for your thorough explanation of the hash map! I understand it so much better now!

  • @harika2988
    @harika2988 6 месяцев назад

    Really like the way you have presented the logic and would like to see more of these kind of videos.

  • @shariefrana
    @shariefrana 11 месяцев назад

    Love the way you teach and present the content in most simplest way, It would be great to see DSA and System design courses from you.

  • @akshaynile2778
    @akshaynile2778 2 года назад +2

    Wow !
    Really a brilliant solution using a Map. 😇
    Thanks for this video John. I learnt a new technique today. 👍

  • @nanthawatanancharoenpakorn6649

    Please do more. I would like to learn and see how you approach the problem, why you think and how you think.thank you

  • @applemaysl
    @applemaysl 2 года назад +1

    Can you please do more of these? Your explanation was so clear and to the point, I wish there was more!

  • @sdors4
    @sdors4 2 года назад

    You have a brilliant mind, that’s so simple solution and very smart

  • @oleksandrkardash4898
    @oleksandrkardash4898 11 месяцев назад

    please make more of these exercises! This is a good way to learn and practice coding

  • @Raied114
    @Raied114 2 года назад

    I'd love to see more videos about what you talked about at the last min of the video: "I never would have thought of that!".
    Your way of explaining the thought process is exactly what I'm looking for in these types of videos. I don't just want to see the solution to this or that coding problem, but the idea behind it.
    Please keep them coming!

  • @nandhurix9547
    @nandhurix9547 Год назад

    Hi John, the way you explained is more clear and more precise so I suggest you do this kind of video more and make it a playlist for Leetcode easy problems, People who are new to Leetcode like me would appreciate more content like this.

  • @UHealthyLife
    @UHealthyLife 10 месяцев назад

    please do more videos like this. your channel is more helpful for beginners too.

  • @TheNameIsAdmiral
    @TheNameIsAdmiral 2 года назад +2

    One of the best coding channels. VERY well explained. Cheers! You deserve way more subs.

  • @rafaelmarcos9733
    @rafaelmarcos9733 9 месяцев назад

    Thank you, I was struggling on how to optimize my solution in C using just One for loop.

  • @minakianrad812
    @minakianrad812 2 года назад

    Thank you for this video. Please do more of the Leetcode problems. Thank you.

  • @rajwanahmed935
    @rajwanahmed935 2 года назад +1

    First thanks for the video. Please do this kind of video more! It's helped me a lot.

  • @andreuzamurengera848
    @andreuzamurengera848 2 года назад +2

    This solution is amazing. We would love to see more questions of this complexity

  • @JayyDEmm_
    @JayyDEmm_ 2 года назад

    These videos are really helpful for beginners like me in Java. - Everything I learned in College was very basic and a few things didn't make much sense to me, but now that I am watching your videos, and going step by step with your tutorials, makes a lot more sense and I can understand a lot more than I did while in my course.
    I have seen these kind of code challenges in HackerRank and Codility for job applications, and they can be really hard for beginners like me. However, with tutorials like this one, I am pretty sure next time we have to complete a code challenge, it will not be as difficult. So, thanks for your videos, it would be nice if you keep posting tutorials of challenges similar to this one. It is a good way of learning.

  • @chair_force
    @chair_force 2 года назад +45

    Yes more leet code/algo videos, there’s barely any good Java leet code videos on RUclips. Mostly just python and JavaScript videos. Java is neglected on leet code.

  • @AdetunjiSundayAwobajo
    @AdetunjiSundayAwobajo 2 года назад

    Thank you John, I had solved this code challenge on leetcode but I used brute-force approach outer and inner loop and it's was a mess wrt speed, I have been keen on solving it once more in a smarter way but here you came with the almighty block-buster smashing way.. I will do more on algorithmic thinking. By the way, you should have a full tutorial on DS & Algorithm...

  • @mightygreen3364
    @mightygreen3364 2 года назад

    Great solution, since I don't have uni right now, I do a few leetcode problems a day, this will probably improve a lot of them.

  • @sebon11
    @sebon11 Год назад

    Dude this video is brilliant and excellent! Not just the solution, the explanations and the speech at the end as well. Thank you!

  • @tedrostekestekidane7000
    @tedrostekestekidane7000 Год назад

    I believe it is interesting and fun to learn java while being applied to solve a real problem. Your way of explanation and approach is mindblowingly exceptional which makes it even more exciting. I can wait for the next video John. Thank you so much.

  • @dele1518
    @dele1518 2 года назад +1

    Please do more like this. this is really awesome

  • @ThinkScienceCanada
    @ThinkScienceCanada 11 месяцев назад

    this video is amazing!! thanks for all the explanation, please continue with this! Im using java to do these code challenges and your videos helps me a lot

  • @WealthyFrog
    @WealthyFrog Год назад

    you are awesome man! You've given me a new way to face problems like these! Thank you.

  • @noahdavis3663
    @noahdavis3663 2 года назад

    i really like how you showed two different implementations

  • @grimsri3782
    @grimsri3782 2 года назад +1

    Please post this kind of videos more. I like the way you explaining the details by going into the deep. I am waiting😋

  • @Molotom
    @Molotom 2 года назад +1

    Great video, John! What sets you apart is that you have a very clear communication style, and you're very encouraging as well. I think that this LeetCode video showcases those skills really well, and it would be awesome if you made more in the future :)

  • @stefans6557
    @stefans6557 2 года назад

    Very clever idea, how to solve in O(n) time! The solution was immediately obvious, as you said what to put in the map (complement and index) at about end of minute 11, so I came up with a slightly different solution:
    ----
    public int[] twoSum(int[] nums, int target) {
    Map map = new HashMap();
    for (int i = 0; i < nums.length; i++) {
    if (map.containsKey(nums[i])) {
    return new int[]{map.get(nums[i]), i};
    }
    map.put(target - nums[i], i);
    }
    return nums;
    }
    ----
    Not sure, if it is slower - got 6-8ms in first runs, and 4-6 for yours, with a new try it was then 1ms for mine, so i think it's about the same (map.containsKey vs. null check) but leetcode has a pretty wide time fluctuation.

    • @CodingWithJohn
      @CodingWithJohn  2 года назад +1

      Nice! Yeah it's hard to say, the LeetCode times vary pretty wildly.

  • @ankur5648
    @ankur5648 Год назад

    Please John keep them coming I'm a university 3rd yr student and tbh I would have never been able to out that approach. I don't know when i will be able to think like other programmers 😩

  • @killer4virus
    @killer4virus 2 года назад +1

    Amazing!! I started enjoying java due to your videos :)

  • @amitborkar6345
    @amitborkar6345 2 года назад

    Yes Please! keep the leet code videos coming.... I love the way you explain things.

  • @joseramonrevuelta1105
    @joseramonrevuelta1105 2 года назад

    EXCELLENT!! Very good solution... I would add an "if (nums[i] < target) {..." just after the for loop to even avoid working at all if it is not possible that the number could be part of the solution and storing it in the map with a negative complement would be a small waste of time/space.
    If I may suggest an idea for a future video, given that your explanations are SOOO CLEAR; Consider doing one on using "Streams" with "Collections" to do all that processing of contents (even using "Lambdas" on them). If it is a good idea, give it a go!
    All the Best!

  • @SHIVAGARCÍACHUMKHWAN
    @SHIVAGARCÍACHUMKHWAN Месяц назад

    I love the way you explain these things!