Тёмный

Two Pointer Algorithm | Two Sum Problem | Solve DS Problems in O(N) Time 

JAVAAID - Coding Interview Preparation
Подписаться 37 тыс.
Просмотров 115 тыс.
50% 1

Опубликовано:

 

8 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 133   
@JavaAidTutorials
@JavaAidTutorials 4 года назад
*carried over the corrections from previous sliding window tutorial* Initialize the msum to Integer.MIN_VALUE because all the wsum may be negative and in that case the msum will never be updated by the wsum. and in second method, *maxSum = Math.max(maxSum, windowSum); // added as a part of correction* public static int getMaxSumSubArrayOfSizeKM2(int[] A, int k) { int windowSum = 0, maxSum = Integer.MIN_VALUE; for (int i = 0; i < k; i++) { windowSum += A[i]; } *maxSum = Math.max(maxSum, windowSum); // added as a part of correction* for (int windowEndIndex = k; windowEndIndex < A.length; windowEndIndex++) { windowSum += A[windowEndIndex] - A[windowEndIndex - k]; maxSum = Math.max(maxSum, windowSum); } return maxSum; }
@abcd-sf5ur
@abcd-sf5ur 4 года назад
please make video on recursion please
@JavaAidTutorials
@JavaAidTutorials 4 года назад
I have one playlist for recursion you can follow this- ru-vid.com/group/PLSIpQf0NbcCk4be21WNhPHrHMSxFndZtB
@valkon_
@valkon_ 3 года назад
Thanks for the video. You just need maxSum = windowSum; No reason to call Math.max again.
@patrickmayer9218
@patrickmayer9218 2 года назад
In short, two pointer algorithms are a nice way to reduce time complexity by only iterating throughout the container once. Thanks for the video!
@nishilshah140692
@nishilshah140692 3 года назад
@17:05 windowSum += a[end++]; after this line we should add : maxSum = windowSum; In case if first window is the maximum.
@104_velladurai.j9
@104_velladurai.j9 2 месяца назад
Yes I also noticed that
@srafayal
@srafayal 2 года назад
Best ever explanation over this topic across youtube
@faizanusmani1039
@faizanusmani1039 3 года назад
It is unfortunate that you have not been uploading from a few days. You have explained this concept really well. I dont remember studying this anywhere in any DSA course online or offline.
@satyakimandal6830
@satyakimandal6830 3 года назад
Well explaianed, helped a lot to understand the algorithm. Thank you so much for such tutorial.
@latasha2123
@latasha2123 2 года назад
This is the best eplanation I got for two pointer so far.
@sunkari00
@sunkari00 4 года назад
Great Job Buddy... You made look the problem simple now and thx for explaining both brute force and optimal solution in a concise manner.
@JavaAidTutorials
@JavaAidTutorials 4 года назад
thank you for you nice feedback. 🙂
@travel_ghost22
@travel_ghost22 3 года назад
You came to my life as a bhagwan bro...I was facing so much difficulty understanding this.Thanks very mcuh keep making such videos
@danishuddin9752
@danishuddin9752 2 года назад
What a brautiful explanation sir, correct of pictures and respective code lines are used for the explanation which eases the process of understanding - which i haven't seen any other tutorials/ teachers on youtube doing! great!
@saswatapatra5919
@saswatapatra5919 2 года назад
The two sum is such a great problem! The solution of two pointers works just fine but it will fail in leetcode if submitted because it doesnt work for negative numbers!
@eddiephiri1763
@eddiephiri1763 5 месяцев назад
Still relevant today! Clearly explained and easy to follow! Great work!
@shobhitbajaj9667
@shobhitbajaj9667 4 года назад
Love your videos so much 😍👍👍👍👌 Can't express how these videos are helping me. Thanks so much
@JavaAidTutorials
@JavaAidTutorials 4 года назад
Thanks a lot for your such a nice feedback. If you find our channel helpful, please share with your friends also.
@BrandonHo
@BrandonHo Год назад
great video! regarding the leet code problems you list @4:00, Move Zeroes should be categorized under equi-directional problems
@AvinashKumar-sw2do
@AvinashKumar-sw2do 3 года назад
Excellent tutorial with very good diagrams for the Two Pointer Technique. Kudos to you !!!
@JavaAidTutorials
@JavaAidTutorials 3 года назад
Glad it was helpful!
@robertsedgewick1266
@robertsedgewick1266 4 года назад
BEST explanation on youtube!
@JavaAidTutorials
@JavaAidTutorials 4 года назад
Wow, thanks!
@emotionization
@emotionization 3 года назад
Great job.. Just to be more accurate, at 17:22 -> second while time complexity must be n-k, not n. So, all whole algorithm will be work in exactly O(n).
@ayushbudhwani
@ayushbudhwani 4 года назад
Explanation in the video is great, I just want to point out one fact that for target = 6 the algorithm works fine. But if the target is 5 the algorithm returns the index [1,6] which can be incorrect if the question says to find minimum indices for the sum of two elements to get the target value. In that case, the indices should be [2,3]. Apart from that, the video was cool.
@JavaAidTutorials
@JavaAidTutorials 4 года назад
A simple problem can turned out to be different one if we add any restriction , it will not remain same. 😀
@AdityaSingh-ql9ke
@AdityaSingh-ql9ke 2 года назад
yep,...this problem needed binary search , not 2 pointer
@abhishekhail6682
@abhishekhail6682 Год назад
Thankyou for crisp and Clear concept.
@prakashkaruppusamy3817
@prakashkaruppusamy3817 4 года назад
Hi Kanhaiya... your videos are useful for coding aspirants like us. Keep up the good work buddy 😊👏🏼
@JavaAidTutorials
@JavaAidTutorials 4 года назад
thanks, Prakash for such nice feedback. Stay tuned for learning cool stuff.!!
@Human_Evolution-
@Human_Evolution- 2 года назад
I like your stuff. Best visualizations for sliding windows I've ever seen.
@hamzakhan-ks4ry
@hamzakhan-ks4ry 7 дней назад
bro akheeeeeer..! fabulous.!
@shanmugamss6312
@shanmugamss6312 2 года назад
no words to express your content and knowledge sharing...keep going ...thank you so much
@notdumb3182
@notdumb3182 2 года назад
Great video mate. Keep this type of videos coming.
@letzzvibe
@letzzvibe 2 года назад
Great explanations & graphics
@sawandeepgavel54
@sawandeepgavel54 4 года назад
Pretty clear explanation, great job Sir
@Mike-mw1fu
@Mike-mw1fu 4 года назад
Your video gives me so much knowledge as well as beauty of programming. Keep it up, Sir! By the way, May you please upload 3sum and/or 4 sum problems as soon as possible?
@JavaAidTutorials
@JavaAidTutorials 4 года назад
Thank you for your nice feedback.
@chandrashekhar9470
@chandrashekhar9470 4 года назад
Best Explanation Ever!!!
@JavaAidTutorials
@JavaAidTutorials 4 года назад
thank you. 🙂
@thomaschamberlain3905
@thomaschamberlain3905 4 года назад
Very well explained. Thank you.
@JavaAidTutorials
@JavaAidTutorials 4 года назад
Glad you liked it
@avinashkumarsingh9915
@avinashkumarsingh9915 4 года назад
Wow, Awesome Explanation . Please cover more Array type problem.
@JavaAidTutorials
@JavaAidTutorials 4 года назад
Thank you very much. I am working on it. If you find our channel helpful, please support us by sharing our channel.
@UECAshutoshKumar
@UECAshutoshKumar Год назад
Thank you sir
@0anant0
@0anant0 4 года назад
Nice explanation with diagrams!
@JavaAidTutorials
@JavaAidTutorials 4 года назад
thank you. 🙂 If you find it useful, please do share with others.
@noorashrafabdelmawlashiha1206
@noorashrafabdelmawlashiha1206 4 года назад
Such a damn shame that you are not popular yet. We all should work on making you famous on RU-vid . You deserve it
@JavaAidTutorials
@JavaAidTutorials 4 года назад
Thanks a lot, brother for the lovely feedback. I hope, people will love and share my content so that your comment will be no more just a comment, will become reality. 🙂
@mohanbhati9595
@mohanbhati9595 4 года назад
@@JavaAidTutorials yes.
@sachinshukla1095
@sachinshukla1095 2 года назад
Awesome explanation bro please make more videos
@jvilbre
@jvilbre 10 месяцев назад
thank you for your video!!!
@charanreddy5227
@charanreddy5227 2 года назад
great explaination sir. thanks.
@vinothkannans1910
@vinothkannans1910 3 года назад
Great explanation 👍. Could you please make video for leetcode 1590.
@JavaAidTutorials
@JavaAidTutorials 3 года назад
thanks for the feedback, will try.
@sauravshrestha1890
@sauravshrestha1890 8 месяцев назад
Hi, great tutorial. Would the two pointer method for Two Sum Problem work for unsorted arrays?
@ArbindYadav-oc3zg
@ArbindYadav-oc3zg 4 года назад
Very good explanation. Hearty thankful for your beautiful contribution
@JavaAidTutorials
@JavaAidTutorials 4 года назад
Thanks a lot for such a wonderful comment.😊 If you find our channel helpful, please support us by sharing it..
@JavaAidTutorials
@JavaAidTutorials 4 года назад
Hey Every one, If you find this tutorial helpful, please do not forget to like , comment, share and It would be great if you can leave your feedback about the tutorial, as I have put a lot of hard work to make things easy for you. Thanks ..!! 🙏🙏
@alexschlesinger6498
@alexschlesinger6498 4 года назад
Great tutorial, thank you!
@JavaAidTutorials
@JavaAidTutorials 4 года назад
Glad it was helpful!
@sasikumartangala5001
@sasikumartangala5001 3 года назад
Simply amazing
@JavaAidTutorials
@JavaAidTutorials 3 года назад
Thanks a lot 😊
@vYadav16380
@vYadav16380 Год назад
thnks buddy
@vamsikrishnasai1682
@vamsikrishnasai1682 2 года назад
Great explanation but when we give input 0 1 2 16 2 2 3 and target 18 then we will get wrong result using two pointer recnique
@MSDhoni-yl7tf
@MSDhoni-yl7tf 4 года назад
Video was very helpful. Great work. Can you give some example of slow and fast pointers in same direction?
@JavaAidTutorials
@JavaAidTutorials 4 года назад
thanks for your feedback 🙂 Will upload some more tutorial on two pointer technique in same direction soon, stay tuned.!
@charlesandrews8790
@charlesandrews8790 4 года назад
Great video! Thanks very much :)
@JavaAidTutorials
@JavaAidTutorials 4 года назад
Glad you liked it!
@Rei-m3g
@Rei-m3g Год назад
i learnt this without knowing its called two pointer technique.
@albertpraveenr1132
@albertpraveenr1132 Год назад
Sir actualy the two sum is failing at case of [3,2,4] bcoz when we move to first pointer as start=0 and end=length-1 so sum will be 7 then we will decrement end then it will point to two( index 1) then at last result will be [0,0] instead of [1,2] can you please rectify it !!!
@sandeepkumawat4982
@sandeepkumawat4982 4 года назад
Hi a simple doubt from this nood In the maximum sum problem what if maximum sum occurs at first window we are not assigning the first window's sum to the maximum sum variable..please reply its confusing me ...help me out Time is 16:40
@JavaAidTutorials
@JavaAidTutorials 4 года назад
thanks for pointing this out, I have added a correction in my comment and pinned it on top. i hope it will help you.
@shaikimran3780
@shaikimran3780 Год назад
sir is sliding window technique and equi pointer both same? because the algorithm u have shown is almost same for the both
@geetusharma3923
@geetusharma3923 4 года назад
Nice video 👍🙂
@JavaAidTutorials
@JavaAidTutorials 4 года назад
Thanks 😀
@shivangsaini3940
@shivangsaini3940 2 года назад
Great
@user-vv9wt7mb7x
@user-vv9wt7mb7x Год назад
hmmn in the example 2 provided at around 5:59. i dont understand why the output should be [3,4] not [2,3] since the element 3 is under index 2 and element 3 is also in index 3. am i missing something?
@welberserafim6806
@welberserafim6806 3 года назад
You're amazing
@JavaAidTutorials
@JavaAidTutorials 3 года назад
thank you :)
@vamsinadh100
@vamsinadh100 4 года назад
I started following you
@JavaAidTutorials
@JavaAidTutorials 4 года назад
Thank you. I hope you will not disappoint 🙂
@rishabhsaini3357
@rishabhsaini3357 2 года назад
thankyou bhai
@shubhamk840
@shubhamk840 4 года назад
THANK YOU SO MUCH
@JavaAidTutorials
@JavaAidTutorials 4 года назад
Welcome 😊
@Firstusee256
@Firstusee256 4 года назад
Great work
@JavaAidTutorials
@JavaAidTutorials 4 года назад
Thank you for appreciating my work.
@wise_wealth_builders
@wise_wealth_builders 4 года назад
Here is the summary which may help. Let's learn together What is 2 pointers technique? - a technique for searching in loop using 2 indicators, especially for strings, arrays and linked lists - need to be used in sorted array / linked list Why should know it - help reduce time complexity types of two pointers: - opposite directional - equi directional
@coding-mania
@coding-mania 4 года назад
I have a question from you... In this question we have to find pair of number having sum = 6. Now the given array is a[1,2,3,3,4,5]....now I want 3 pairs as output (1,5),(2,4),(3,3)...now what should I do because in my output it is showing 1,5 only and comes out of the loop...?
@ashishburnwal1839
@ashishburnwal1839 4 года назад
@@coding-mania remove break statement inside if condition, I think it will work.
@coding-mania
@coding-mania 4 года назад
@@ashishburnwal1839 ok thank you
@bingo9875
@bingo9875 4 года назад
genius!!
@seeboonsoo
@seeboonsoo 4 года назад
Awesome video!
@JavaAidTutorials
@JavaAidTutorials 4 года назад
thanks 🙂
@memesmacha61
@memesmacha61 4 года назад
Hey bro u have any course on udemy or any other platforms ..I want more stuff about ds
@JavaAidTutorials
@JavaAidTutorials 4 года назад
Currently we don't have, but planning to collate my learning at one place in a sequence. So that people can more benefits. But will take some time to create such contents. Lets see.
@nagendrapp2213
@nagendrapp2213 4 года назад
@@JavaAidTutorials start as soon as possible dsa +cp related from scratch : )
@dagabangel
@dagabangel 4 года назад
5 star rated
@JavaAidTutorials
@JavaAidTutorials 4 года назад
Thank you..😊
@melchizedekodonkor
@melchizedekodonkor 4 года назад
@JAVAAID can you enable us to ask questions on the telegram page?
@JavaAidTutorials
@JavaAidTutorials 4 года назад
We have multiple telegram channels and groups as well, you can post anything on channel it is used only for broadcasting but you can use group to discuss anything with your fellow coder. Join our telegram group as mentioned in video description to ask your query.
@prithvini04
@prithvini04 4 года назад
So, if the array is sorted we can use two pointer technique else we should use sliding window technique for O(n) time complexity,right ?
@JavaAidTutorials
@JavaAidTutorials 4 года назад
It depends on the problem, but two pointer can be used when array is ordered
@shenth27
@shenth27 3 года назад
I think sliding window technique is a special case which allows you to find contiguous subarray satisfying a condition.
@tharunb754
@tharunb754 4 года назад
sir, what methodology is the best if the array is not in sorted order and if there is restriction of sorting ????
@JavaAidTutorials
@JavaAidTutorials 4 года назад
two pointer technique will be useful , when array is ordered some or the other way else it will not help you much.
@mohilkhare2571
@mohilkhare2571 4 года назад
Hello sir, you said in equi-direction two-pointer problem, you mentioned, one pointer moves faster than the other, but the shown example, both pointers move at same speed. Why so?
@JavaAidTutorials
@JavaAidTutorials 4 года назад
It means one pointer will always ahead of another pointer. But later may shift one by one.
@Akashgupta-id3kw
@Akashgupta-id3kw Год назад
class Solution { public int[] twoSum(int[] nums, int target) { int[] RArray = new int[2]; int start=0,end=nums.length-1; while(start < end) { int sum=nums[start]+nums[end]; if(sum == target) { RArray[0]=start; RArray[1]=end; break; } else if(sum > target) { end--; } else { start++; } } return RArray; } } THIS IS TWO POINTERS OPPOSITE DIRECTIONAL APPOROACH BUT IT'S SHOWING ERROR WHEN EXECUTING?? WHY
@harshavardhanreddy6236
@harshavardhanreddy6236 2 месяца назад
yeah ! ..... for me also time limit is exceeding showing...
@rishiraj2548
@rishiraj2548 Год назад
👍
@skvello
@skvello 4 года назад
Your sliding window solution is not working correctly when the first window is the biggest sum, because you're not evaluating the maxSum after the first while loop. Try changing the first element of the input array from 1 to 10 (which for k=4 would make windowSum=16) - the function will still return 13.
@JavaAidTutorials
@JavaAidTutorials 4 года назад
We have done the correction in our sliding window tutorial code and mentioned the same in a pinned comment of that video, please follow the pinned comment and let us know if still there is any doubt.
@pravinchukkala545
@pravinchukkala545 2 года назад
Hi, Javaaid, Two pointers algorithm goes wrong. if we pass input like these [3,2,4] and target - 6
@ravibisht3300
@ravibisht3300 2 года назад
import java.util.Arrays; class Solution { public int[] twoSum(int[] nums, int target) { int start=0; int end=nums.length-1; int temp[]=new int[nums.length]; for(int i=0;i
@logto2209
@logto2209 Год назад
test case is not sorted. above code only runs in sorted array
@Beacher1085
@Beacher1085 3 года назад
Shouldn't index start from 0?!
@yourGuy675
@yourGuy675 2 года назад
sir but two sum problem in leetcode is unsorted
@ejbjms
@ejbjms Год назад
Your algorithm will not work when the array has more than 2 numbers which is the same like 1,2,3,3,3,3,4,6 etc and we have return a list of possible solutions
@charlesbaiden3236
@charlesbaiden3236 4 года назад
I didn't quite get why you returned plus 1. Can someone explain? Thanks
@JavaAidTutorials
@JavaAidTutorials 4 года назад
Can you please mention the time as well? where you have doubt.
@charlesbaiden3236
@charlesbaiden3236 4 года назад
JAVAAID - Coding Interview Preparation I understand, index is one based 10:49
@appikeeru5785
@appikeeru5785 Месяц назад
I didn't understand subarray
@Rahul-oy4bp
@Rahul-oy4bp 2 года назад
This does not work for array that is not sorted.
@ravibisht3300
@ravibisht3300 2 года назад
improvise this one and it works- import java.util.Arrays; class Solution { public int[] twoSum(int[] nums, int target) { int start=0; int end=nums.length-1; int temp[]=new int[nums.length]; for(int i=0;i
@JitendraSingh-qd7jk
@JitendraSingh-qd7jk 2 года назад
This technique works only in sorted array. :||
@ravibisht3300
@ravibisht3300 2 года назад
yes but you can improvise this and use- import java.util.Arrays; class Solution { public int[] twoSum(int[] nums, int target) { int start=0; int end=nums.length-1; int temp[]=new int[nums.length]; for(int i=0;i
@JitendraSingh-qd7jk
@JitendraSingh-qd7jk 2 года назад
@@ravibisht3300 I know how to sort an array.
@ravibisht3300
@ravibisht3300 2 года назад
@@JitendraSingh-qd7jk this one is how you can use the same method for non sorted array. For eg if target is 6 and input array is {3,2,4} if you sort it and then return indices then it will give {0,2 } which is incorrect cause answer should be {1,2}.so this technique works.
@JitendraSingh-qd7jk
@JitendraSingh-qd7jk 2 года назад
@@ravibisht3300 You're just sorting using inbuilt method what's so new lol. The sorting takes a bit time complexity too. So this method can't work with O(1) in worst case.
@sachiiinnnn9734
@sachiiinnnn9734 3 года назад
nicely explained.. but i found one guy who has used exact same presentation in your video ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-ymKrGndnTis.html see ..he's stealing your work
@JavaAidTutorials
@JavaAidTutorials 3 года назад
thanks for sharing.. just watch the video.. literally the presentation was exactly looks the same in his multiple videos. but glad to see that people are so much impressed with our presentation/style that they started copying that.
Далее
How to Solve ANY LeetCode Problem (Step-by-Step)
12:37
Просмотров 203 тыс.
LeetCode was HARD until I Learned these 15 Patterns
13:00
How to Use the Two Pointer Technique
10:56
Просмотров 100 тыс.
The hidden beauty of the A* algorithm
19:22
Просмотров 860 тыс.
Bresenham's Line Algorithm - Demystified Step by Step
16:10
5 Simple Steps for Solving Any Recursive Problem
21:03