*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-sf5ur4 жыл бұрын
please make video on recursion please
@JavaAidTutorials4 жыл бұрын
I have one playlist for recursion you can follow this- kzbin.info/aero/PLSIpQf0NbcCk4be21WNhPHrHMSxFndZtB
@valkon_3 жыл бұрын
Thanks for the video. You just need maxSum = windowSum; No reason to call Math.max again.
@patrickmayer92182 жыл бұрын
In short, two pointer algorithms are a nice way to reduce time complexity by only iterating throughout the container once. Thanks for the video!
@srafayal2 жыл бұрын
Best ever explanation over this topic across youtube
@latasha21232 жыл бұрын
This is the best eplanation I got for two pointer so far.
@nishilshah1406923 жыл бұрын
@17:05 windowSum += a[end++]; after this line we should add : maxSum = windowSum; In case if first window is the maximum.
@104_velladurai.j97 ай бұрын
Yes I also noticed that
@danishuddin97522 жыл бұрын
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!
@faizanusmani10393 жыл бұрын
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.
@eddiephiri176310 ай бұрын
Still relevant today! Clearly explained and easy to follow! Great work!
@satyakimandal68303 жыл бұрын
Well explaianed, helped a lot to understand the algorithm. Thank you so much for such tutorial.
@travel_ghost223 жыл бұрын
You came to my life as a bhagwan bro...I was facing so much difficulty understanding this.Thanks very mcuh keep making such videos
@sunkari005 жыл бұрын
Great Job Buddy... You made look the problem simple now and thx for explaining both brute force and optimal solution in a concise manner.
@JavaAidTutorials5 жыл бұрын
thank you for you nice feedback. 🙂
@saswatapatra59192 жыл бұрын
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!
@hemaladani45102 ай бұрын
Love your curated list of problems. Leetcode often mixes hard ones with easy ones.
@emotionization3 жыл бұрын
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).
@BrandonHo2 жыл бұрын
great video! regarding the leet code problems you list @4:00, Move Zeroes should be categorized under equi-directional problems
@Human_Evolution-3 жыл бұрын
I like your stuff. Best visualizations for sliding windows I've ever seen.
@shobhitbajaj96675 жыл бұрын
Love your videos so much 😍👍👍👍👌 Can't express how these videos are helping me. Thanks so much
@JavaAidTutorials5 жыл бұрын
Thanks a lot for your such a nice feedback. If you find our channel helpful, please share with your friends also.
@abhishekhail6682 Жыл бұрын
Thankyou for crisp and Clear concept.
@JavaAidTutorials5 жыл бұрын
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 ..!! 🙏🙏
@notdumb31822 жыл бұрын
Great video mate. Keep this type of videos coming.
@robertsedgewick12664 жыл бұрын
BEST explanation on youtube!
@JavaAidTutorials4 жыл бұрын
Wow, thanks!
@ritomukherjee83894 ай бұрын
In 2 aum I always used hashmaps till date but I can see with the TC = O(N) nut the SC = O(N) too cause of the extra space uaed for HashMap. I think will try to Master the 2 pointers and Sliding Window to get TC = O(N) but here SC = O(1) no extra space. Awesome thanks. Also gonna implement same in my office project too tomorrow, where I have to search between Ids of a different table saved as JSON obj( array json encoded ) in DB field to get rid of some normalization and make it faster
@shanmugamss63122 жыл бұрын
no words to express your content and knowledge sharing...keep going ...thank you so much
@AvinashKumar-sw2do3 жыл бұрын
Excellent tutorial with very good diagrams for the Two Pointer Technique. Kudos to you !!!
@JavaAidTutorials3 жыл бұрын
Glad it was helpful!
@letzzvibe2 жыл бұрын
Great explanations & graphics
@ayushbudhwani4 жыл бұрын
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.
@JavaAidTutorials4 жыл бұрын
A simple problem can turned out to be different one if we add any restriction , it will not remain same. 😀
@AdityaSingh-ql9ke3 жыл бұрын
yep,...this problem needed binary search , not 2 pointer
@prakashkaruppusamy38175 жыл бұрын
Hi Kanhaiya... your videos are useful for coding aspirants like us. Keep up the good work buddy 😊👏🏼
@JavaAidTutorials5 жыл бұрын
thanks, Prakash for such nice feedback. Stay tuned for learning cool stuff.!!
@hamzakhan-ks4ry5 ай бұрын
bro akheeeeeer..! fabulous.!
@sachinshukla10952 жыл бұрын
Awesome explanation bro please make more videos
@sawandeepgavel544 жыл бұрын
Pretty clear explanation, great job Sir
@charantechgeek2 жыл бұрын
great explaination sir. thanks.
@chandrashekhar94705 жыл бұрын
Best Explanation Ever!!!
@JavaAidTutorials5 жыл бұрын
thank you. 🙂
@thomaschamberlain39054 жыл бұрын
Very well explained. Thank you.
@JavaAidTutorials4 жыл бұрын
Glad you liked it
@0anant05 жыл бұрын
Nice explanation with diagrams!
@JavaAidTutorials5 жыл бұрын
thank you. 🙂 If you find it useful, please do share with others.
@noorashrafabdelmawlashiha12064 жыл бұрын
Such a damn shame that you are not popular yet. We all should work on making you famous on KZbin . You deserve it
@JavaAidTutorials4 жыл бұрын
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. 🙂
@mohanbhati95954 жыл бұрын
@@JavaAidTutorials yes.
@jvilbre Жыл бұрын
thank you for your video!!!
@avinashkumarsingh99155 жыл бұрын
Wow, Awesome Explanation . Please cover more Array type problem.
@JavaAidTutorials5 жыл бұрын
Thank you very much. I am working on it. If you find our channel helpful, please support us by sharing our channel.
@JoselitoPerez-j7d Жыл бұрын
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?
@Mike-mw1fu5 жыл бұрын
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?
@JavaAidTutorials5 жыл бұрын
Thank you for your nice feedback.
@harmonicsaurav Жыл бұрын
Hi, great tutorial. Would the two pointer method for Two Sum Problem work for unsorted arrays?
@alexschlesinger64984 жыл бұрын
Great tutorial, thank you!
@JavaAidTutorials4 жыл бұрын
Glad it was helpful!
@geetusharma39234 жыл бұрын
Nice video 👍🙂
@JavaAidTutorials4 жыл бұрын
Thanks 😀
@charlesandrews87904 жыл бұрын
Great video! Thanks very much :)
@JavaAidTutorials4 жыл бұрын
Glad you liked it!
@wise_wealth_builders4 жыл бұрын
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
@DrowsyRock4 жыл бұрын
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...?
@ashishburnwal18394 жыл бұрын
@@DrowsyRock remove break statement inside if condition, I think it will work.
@DrowsyRock4 жыл бұрын
@@ashishburnwal1839 ok thank you
@bingo98754 жыл бұрын
genius!!
@ArbindYadav-oc3zg5 жыл бұрын
Very good explanation. Hearty thankful for your beautiful contribution
@JavaAidTutorials5 жыл бұрын
Thanks a lot for such a wonderful comment.😊 If you find our channel helpful, please support us by sharing it..
@sasikumartangala50014 жыл бұрын
Simply amazing
@JavaAidTutorials4 жыл бұрын
Thanks a lot 😊
@seeboonsoo5 жыл бұрын
Awesome video!
@JavaAidTutorials5 жыл бұрын
thanks 🙂
@vinothkannans19104 жыл бұрын
Great explanation 👍. Could you please make video for leetcode 1590.
@JavaAidTutorials4 жыл бұрын
thanks for the feedback, will try.
@sandeepkumawat49824 жыл бұрын
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
@JavaAidTutorials4 жыл бұрын
thanks for pointing this out, I have added a correction in my comment and pinned it on top. i hope it will help you.
@KnowUrislam-12 жыл бұрын
sir is sliding window technique and equi pointer both same? because the algorithm u have shown is almost same for the both
@vamsinadh1004 жыл бұрын
I started following you
@JavaAidTutorials4 жыл бұрын
Thank you. I hope you will not disappoint 🙂
@MSDhoni-yl7tf5 жыл бұрын
Video was very helpful. Great work. Can you give some example of slow and fast pointers in same direction?
@JavaAidTutorials5 жыл бұрын
thanks for your feedback 🙂 Will upload some more tutorial on two pointer technique in same direction soon, stay tuned.!
@UECAshutoshKumar Жыл бұрын
Thank you sir
@welberserafim68063 жыл бұрын
You're amazing
@JavaAidTutorials3 жыл бұрын
thank you :)
@Firstusee2565 жыл бұрын
Great work
@JavaAidTutorials5 жыл бұрын
Thank you for appreciating my work.
@shubhamk8404 жыл бұрын
THANK YOU SO MUCH
@JavaAidTutorials4 жыл бұрын
Welcome 😊
@vamsikrishnasai16823 жыл бұрын
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
@prithvini044 жыл бұрын
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 ?
@JavaAidTutorials4 жыл бұрын
It depends on the problem, but two pointer can be used when array is ordered
@shenth274 жыл бұрын
I think sliding window technique is a special case which allows you to find contiguous subarray satisfying a condition.
@tharunb7544 жыл бұрын
sir, what methodology is the best if the array is not in sorted order and if there is restriction of sorting ????
@JavaAidTutorials4 жыл бұрын
two pointer technique will be useful , when array is ordered some or the other way else it will not help you much.
@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 !!!
@vYadav16380 Жыл бұрын
thnks buddy
@memesmacha614 жыл бұрын
Hey bro u have any course on udemy or any other platforms ..I want more stuff about ds
@JavaAidTutorials4 жыл бұрын
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.
@nagendrapp22134 жыл бұрын
@@JavaAidTutorials start as soon as possible dsa +cp related from scratch : )
@melchizedekodonkor5 жыл бұрын
@JAVAAID can you enable us to ask questions on the telegram page?
@JavaAidTutorials5 жыл бұрын
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.
@dagabangel5 жыл бұрын
5 star rated
@JavaAidTutorials5 жыл бұрын
Thank you..😊
@shivangsaini39402 жыл бұрын
Great
@pravinchukkala5452 жыл бұрын
Hi, Javaaid, Two pointers algorithm goes wrong. if we pass input like these [3,2,4] and target - 6
@ravibisht33002 жыл бұрын
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
@logto22092 жыл бұрын
test case is not sorted. above code only runs in sorted array
@mohilkhare17084 жыл бұрын
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?
@JavaAidTutorials4 жыл бұрын
It means one pointer will always ahead of another pointer. But later may shift one by one.
@rishabhsaini33572 жыл бұрын
thankyou bhai
@skvello5 жыл бұрын
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.
@JavaAidTutorials5 жыл бұрын
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.
@Akashgupta-id3kw2 жыл бұрын
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
@harshavardhanreddy62368 ай бұрын
yeah ! ..... for me also time limit is exceeding showing...
@rishiraj25482 жыл бұрын
👍
@ejbjms2 жыл бұрын
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
@yourGuy6753 жыл бұрын
sir but two sum problem in leetcode is unsorted
@charlesbaiden32364 жыл бұрын
I didn't quite get why you returned plus 1. Can someone explain? Thanks
@JavaAidTutorials4 жыл бұрын
Can you please mention the time as well? where you have doubt.
@charlesbaiden32364 жыл бұрын
JAVAAID - Coding Interview Preparation I understand, index is one based 10:49
@Beacher1083 жыл бұрын
Shouldn't index start from 0?!
@mB-cv3fj3 ай бұрын
Start = -1 right??
@Rahul-oy4bp2 жыл бұрын
This does not work for array that is not sorted.
@ravibisht33002 жыл бұрын
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
@appikeeru57856 ай бұрын
I didn't understand subarray
@JitendraSingh-qd7jk2 жыл бұрын
This technique works only in sorted array. :||
@ravibisht33002 жыл бұрын
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-qd7jk2 жыл бұрын
@@ravibisht3300 I know how to sort an array.
@ravibisht33002 жыл бұрын
@@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-qd7jk2 жыл бұрын
@@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.
@sachiiinnnn97344 жыл бұрын
nicely explained.. but i found one guy who has used exact same presentation in your video kzbin.info/www/bejne/r56uo3qkmdOHn9U see ..he's stealing your work
@JavaAidTutorials4 жыл бұрын
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.
@DevulapallySiddartha4 ай бұрын
import java.util.*; class HelloWorld { public static void main(String[] args) { int[] arr = {1,9,-1,-2,7,3,-1,2}; // Acsending Order int k = 4; int temp = 0; int l = 0; int ans = 0; int startIndex = 0; for(int i=0;ians){ ans = temp; startIndex = l; } } } int[] result = new int[k]; for(int i=0;i