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!!
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.
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.
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)
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!
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.
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 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!
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 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?)
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 .
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!
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
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 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
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.
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 🫶
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!
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
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 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
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. :)
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 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 🥺
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.
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.
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, 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
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.
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!
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.
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.
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.
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...
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.
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
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 :)
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 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 😩
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!
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.
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
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!!
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.
Thanks a lot John. Please start a Leetcode series, your way of explanation is flawless
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.
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
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!
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.
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)
Please, keep doing this leetcode content. There is not good leetcode videos in Java, so this is gold!
honestly a weekly leetcode video like this would be so good. Please do more!
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.
You explaing this problems better than no one else John! Go foward on this types of 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.
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.
please stop, you have some very good java vids, super useful. for any leetcode question you can find million solutions.
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!
Was just solving this problem and your video came in. Thanks and would love to watch more videos on leet code problems.
So happy i found your channel...😎 premium value ✌️✌️✌️
Yes
Please add more videos of leetcode problems
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.
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 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!
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 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?)
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 .
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!
I had to rewatch the last section as you suggested to finally get it, thanks again John. You are the man.
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
Never thought about a solution like that before. This is a very useful tool to add to the tool box. Thanks!
I don't get it, why people don't subscribe and like this guy's channel and videos. He is the best.
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
A playlist with videos like this would be phenomenal! Thank you for sharing these with us!
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
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.
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 🫶
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!
I've to advocate that we do need more such stuff, @John.
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
Well, i think i can watch these kind of videos whole day without getting bored. Well done. Just perfect.
thank you solving problem with deep details, we having mostly trouble to understand , the way how you explain is highly catchable
Please we need such kind more questions! Appreciated!
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 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
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
Plz do this more often I'm learning java so it's very helpful on how to approach leetcode problems. Thanks.
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.
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.
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.
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 🥺
OMG!!!!! man how can you be so good at teaching ??? you just made my day. please keep the videos coming 🙂
Wow do more of these videos ! Love your explanation
Do a lot more videos like this!!! I love The way you explain it, keep doing this
Simply amazing channel. Gives me so much confidence to keep learning and not to give up.
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.
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!
Please do more of these leetcode videos!
The most recent video is another one!
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.
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, 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
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 , 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.
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
thanks for your thorough explanation of the hash map! I understand it so much better now!
Really like the way you have presented the logic and would like to see more of these kind of videos.
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.
Wow !
Really a brilliant solution using a Map. 😇
Thanks for this video John. I learnt a new technique today. 👍
Please do more. I would like to learn and see how you approach the problem, why you think and how you think.thank you
Can you please do more of these? Your explanation was so clear and to the point, I wish there was more!
You have a brilliant mind, that’s so simple solution and very smart
please make more of these exercises! This is a good way to learn and practice coding
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!
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.
please do more videos like this. your channel is more helpful for beginners too.
One of the best coding channels. VERY well explained. Cheers! You deserve way more subs.
Thank you, I was struggling on how to optimize my solution in C using just One for loop.
Thank you for this video. Please do more of the Leetcode problems. Thank you.
First thanks for the video. Please do this kind of video more! It's helped me a lot.
This solution is amazing. We would love to see more questions of this complexity
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.
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.
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...
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.
Dude this video is brilliant and excellent! Not just the solution, the explanations and the speech at the end as well. Thank you!
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.
Please do more like this. this is really awesome
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
you are awesome man! You've given me a new way to face problems like these! Thank you.
i really like how you showed two different implementations
Please post this kind of videos more. I like the way you explaining the details by going into the deep. I am waiting😋
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 :)
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.
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 😩
Amazing!! I started enjoying java due to your videos :)
Yes Please! keep the leet code videos coming.... I love the way you explain things.
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!
I love the way you explain these things!