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.
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!!
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!!
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)
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.
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 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.
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!
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!
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.
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.
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! 😃
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
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.
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?)
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.
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!
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
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!
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
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 .
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!
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.
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 🥺
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
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
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!
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. :)
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.
Yes more leet code/algo videos, there’s barely any good Java leet code videos on UA-cam. Mostly just python and JavaScript videos. Java is neglected on leet code.
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 🫶
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.
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!
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 😩
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.
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.
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...
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
Hey John please do more leetcode videos. I love how clear and precise your explanations are!! I was sad to only see the two videos in the playlist. Hope you’re doing great!!
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.
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.
I actually solved this same problem about a week ago using the same solution with HashMap after seeing the performance results AND trying to solve it with Set instead (and failing). What you didn't mention is that HashMap has unique keys so there's no duplicates there. There's a bit of a performance gain with this as well. I'd love to see how you solve FizzBuzz in a future video.
Really good video, explaining the code was in-depth and at an appropriate level. Maybe a video on the time/space complexity? That was a hard concept for me starting out.
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.
Please do this kind of videos more!
I second this
I third this
Fourth!
Fifth
This looks like an array, so I 5th this lol
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.
Do more of these kind of videos because your thought process make me think in a different way than before.
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!!
Comments like this help me understand that its ok that I couldnt come up with that second solution on my own. Thank you.
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!!
Yes, more videos like this would be amazing because you don't only solve the challenges, but explain the thinking behind it.
well said sir ! Even I can understand the concepts quite easily and I'm not a native english speaker.
honestly a weekly leetcode video like this would be so good. Please do more!
Thanks a lot John. Please start a Leetcode series, your way of explanation is flawless
Please do this kind of videos.
It helps alot to understand the problem
We want more leetcode questions! you're an expert in teaching. Thanks a lot.
Please, keep doing this leetcode content. There is not good leetcode videos in Java, so this is gold!
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)
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
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.
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!
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.
Well, the problems only states integers, so they might as well be negative, or?
@@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.
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!
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!
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.
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.
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! 😃
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
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.
A playlist with videos like this would be phenomenal! Thank you for sharing these with us!
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?)
I've to advocate that we do need more such stuff, @John.
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.
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!
Was just solving this problem and your video came in. Thanks and would love to watch more videos on leet code problems.
I don't get it, why people don't subscribe and like this guy's channel and videos. He is the best.
Yes
Please add more videos of leetcode problems
So happy i found your channel...😎 premium value ✌️✌️✌️
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
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!
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
Plz do this more often I'm learning java so it's very helpful on how to approach leetcode problems. Thanks.
I had to rewatch the last section as you suggested to finally get it, thanks again John. You are the man.
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 .
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!
Please we need such kind more questions! Appreciated!
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.
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 🥺
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.
please stop, you have some very good java vids, super useful. for any leetcode question you can find million solutions.
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
Please do more of these leetcode videos!
The most recent video is another one!
Can you please do more of these? Your explanation was so clear and to the point, I wish there was more!
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
Never thought about a solution like that before. This is a very useful tool to add to the tool box. Thanks!
thank you solving problem with deep details, we having mostly trouble to understand , the way how you explain is highly catchable
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!
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.
:)
@Coding with John
Well, i think i can watch these kind of videos whole day without getting bored. Well done. Just perfect.
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.
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.
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.
Yes more leet code/algo videos, there’s barely any good Java leet code videos on UA-cam. Mostly just python and JavaScript videos. Java is neglected on leet code.
please make more of these exercises! This is a good way to learn and practice coding
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.
Please make more videos like this, your explanation is just amazing💞. I am grateful to have people like you delivering high quality content free 🙏🙏🙏
Please do more. I would like to learn and see how you approach the problem, why you think and how you think.thank you
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 🫶
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.
This solution is amazing. We would love to see more questions of this complexity
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!
Simply amazing channel. Gives me so much confidence to keep learning and not to give up.
Do a lot more videos like this!!! I love The way you explain it, keep doing this
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 😩
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.
One of the best coding channels. VERY well explained. Cheers! You deserve way more subs.
i really like how you showed two different implementations
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!
Thank you, I was struggling on how to optimize my solution in C using just One for loop.
Really like the way you have presented the logic and would like to see more of these kind of videos.
OMG!!!!! man how can you be so good at teaching ??? you just made my day. please keep the videos coming 🙂
Thank you for this video. Please do more of the Leetcode problems. Thank you.
Wow !
Really a brilliant solution using a Map. 😇
Thanks for this video John. I learnt a new technique today. 👍
You have a brilliant mind, that’s so simple solution and very smart
please do more videos like this. your channel is more helpful for beginners too.
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.
thanks for your thorough explanation of the hash map! I understand it so much better now!
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.
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
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...
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
Hey John please do more leetcode videos. I love how clear and precise your explanations are!! I was sad to only see the two videos in the playlist. Hope you’re doing great!!
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.
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.
Thanks a lot for this clear explanation! Please, do more tutorials for LeetCode exercises!🙏
Please make more algorithm problem solving videos. It is really helpful. Thanks John!!
These videos definitely will help a lot of students as well employees who currently working, to crack the interview round. 🎉🎉
Wow do more of these videos ! Love your explanation
Please post this kind of videos more. I like the way you explaining the details by going into the deep. I am waiting😋
Please make more of these videos. This video was very well explained.
Thanks, I plan to!
Maybe the outer for loop should be for(int i=0; i
Please do more like this. this is really awesome
I actually solved this same problem about a week ago using the same solution with HashMap after seeing the performance results AND trying to solve it with Set instead (and failing). What you didn't mention is that HashMap has unique keys so there's no duplicates there. There's a bit of a performance gain with this as well. I'd love to see how you solve FizzBuzz in a future video.
Really good video, explaining the code was in-depth and at an appropriate level. Maybe a video on the time/space complexity? That was a hard concept for me starting out.
I love the way you explain these things!
Dude this video is brilliant and excellent! Not just the solution, the explanations and the speech at the end as well. Thank you!
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.
Nice! Yeah it's hard to say, the LeetCode times vary pretty wildly.