How to Use the Two Pointer Technique

preview_player
Показать описание
The two pointer technique is a near necessity in any software developer's toolkit, especially when it comes to technical interviews. In this guide, we'll cover the basics so that you know when and how to use this technique.

Рекомендации по теме
Комментарии
Автор

If you cant explain it to a 3rd grade student then you dont understand it. This guy gets it! Great tutorial!

Ny_babs
Автор

I don't usually leave comments but your explanation is so on point. Not too much not too little. Well done! I subscribed to the channel just by watching this video

solmazkhosravi
Автор

So glad I ran into your channel; your way of making concepts visually understandable is a skill in its own right.

brayancuenca
Автор

Thank you so much for explaining this concept in a clear manner. It was evident that you made an effort to communicate and impart knowledge. And yeah, I sure did learn. Thanks again for this charitable endeavor. Salute!!!

charlesopuoro
Автор

thankyou for explaining in a very easy manner that even a newbie to programming can understand the problem and its solution pretty well. Although I've two questions regarding the two problem examples you discussed.

1) do two pointer technique on TwoSum only work on a sorted array? I don't see accurate results on unsorted arrays.

2) in your problem # 2, will your solution work on a link list with a cycle hoping for more than 1 node?

asadabbas
Автор

Your explanation is so on point! Thank you for a great video.

sinojha
Автор

Hey Team AlgoDaily,

You are a great teacher. I like that you take your time and explain things in detail. Question, I understand that traditional two pointer (the pointers are in opposite ends) require the array to the sorted for the traditional two pointer to work. How about the sliding window, a variation of the two pointers? Does sliding window require the array like data structure to be sorted?

Prince-olzk
Автор

Thanks for the video. I haven't come across the cycle problem yet, so it's good to know how it works for when I encounter it. Great explanations and visuals!

brianwsmithers
Автор

So for the first example the two sum, would this one only applied to sorted array?

lucassmith
Автор

Good job on your presentation! This helped me understand the basic two-pointer concept. My only suggestion would be to make a linked follow "suggested video" discussing what a "cycle" is. You are referring to this "cycle" as if it is a specific concept or data structure, as opposed to base/generic understanding of a cycle being anything that repeats in circular manner. Saying something like "A cycle in Python [or whatever language this is] is where you ping a database connection multiple times until you get a handshake. This can be the source of many headaches and hard to troubleshoot" ... Something like that. I just made that up, but you would of course give the actual explanation of what you are calling a #cycle AND a quick synopsis of why we care about finding one.

erichepperlewp
Автор

two pointers only work, if it is a sorted array

shashankl
Автор

Amazing explanation, very clean and concise. Keep up the great work!

bebo
Автор

You are an amazing teacher thanks for this

iceyyeah
Автор

Commenting for the algorithm, goodjob!

tyronemiguelarollado
Автор

Absolutely excellent explanations. Thank you!

alex_georgescu
Автор

loved the video! thanks for helping me understand this better

matthewrodriguez
Автор

I think the two-pointer technique is the same concept I recently read about in Cracking the Coding Interview, called the 'Runner Technique.'

KarenFender
Автор

For Two Sum, wouldn't it be fewer loop iterations to use a HashMap to store each element's location in the array, then you could just do the following on each loop iteration:

1. Get the difference between the current value and the target.
2. Check to see if that value is already stored in the HashMap, if it is, we're done, so just return the current index, and the index stored in the HashMap.
3. If it wasn't found in the HashMap, store the current value and the current index in the HashMap for future lookups (see step 2).
4. If we've gone through each element and didn't find a match, there is no match.

At worst you would be doing N iterations, it seems the worst case for the Two Pointer approach is greater than N iterations unless I'm missing something?

mdouet
Автор

is there any reason why the while loop condition cant be while the sum of the two pointers != target ?

bananaboydan
Автор

Great video, thank you for the clear explanation :)
My question is regarding using the 'two pointer' technique to check for cycles within the linked list, which you present towards the end of the video.
Would using more pointers solve the question faster? So if we used 3 pointers, i.e, pointer 1 has a speed of x, pointer 2 -> 2x and pointer 3 -> 3x would we solve the question faster?

siddharthmitra