3 Sum | Brute - Better - Optimal with Codes

  Рет қаралды 270,384

take U forward

take U forward

Күн бұрын

Problem Link: bit.ly/3X34JSI
Notes/C++/Java/Python codes:
We have solved the problem, and we have gone from brute force and ended with the most optimal solution. Every approach's code has been written in the video itself. Also, we have covered the algorithm with intuition.
Full Course: bit.ly/tufA2ZYt
You can follow me across social media, all my handles are below:
Linkedin/Instagram/Telegram: linktr.ee/takeUforward
0:00 Introduction of Course
00:41 Problem Statement
02:56 Brute force approach (Using 3-pointer)
04:55 Pseudocode
07:36 Code
09:27 Complexity
10:26 Better approach (Using Hashing)
12:23 Dry run
18:09 Code
20:15 Complexity
22:20 Optimal approach (Using 2-pointer)
23:20 2-Pointer Technique
31:50 Code
36:41 Complexity

Пікірлер: 334
@takeUforward
@takeUforward Жыл бұрын
Please do give us a like and subscribe, it won't cost you anything, but it will motivate me to make such kind of content more and more.
@utsavseth6573
@utsavseth6573 Жыл бұрын
Legendary stuff Raj bhai. Your explanation clearly shows you actually have a very strong depth on these fundamentals. And of course you do, you work for Google😉
@deepak8720
@deepak8720 Жыл бұрын
Awesome stuff. Liked and subscribed. Keep going. 👍
@pardhi8959
@pardhi8959 10 ай бұрын
great content love u bhai
@pardhi8959
@pardhi8959 10 ай бұрын
I start by like for all the video
@Bhai9866
@Bhai9866 9 ай бұрын
Bhaiya code nhi chal raha hai 3 sum ki u give the condition sum is greater than 0 , less than 0 but didn't give the condition sum is equal to 0 why?
@luckshaeey
@luckshaeey Жыл бұрын
Tried 2 sum, 3 sum and 4 sum problems together as a beginner. It was so frustrating after a point before I understood the optimal approach 😂
@rishav144
@rishav144 Жыл бұрын
true bro
@it-51gulshanbhati89
@it-51gulshanbhati89 Жыл бұрын
u r strong bro u have tried all as a beginner 😅
@Akash-yr2if
@Akash-yr2if Жыл бұрын
You have a lot more experience than the whole comment section combined.
@user-ye4xi4py2k
@user-ye4xi4py2k Жыл бұрын
The optimal approach for 3sum is just the extension of optimal approach of 2 sum when the array given is sorted
@joeljacob4685
@joeljacob4685 11 ай бұрын
@@user-ye4xi4py2k yup !! you are right
@shashankrajput8084
@shashankrajput8084 3 ай бұрын
That's what a explanation beginner require for these type of problems
@mehulthuletiya497
@mehulthuletiya497 Жыл бұрын
00:41 Problem Statement 02:56 Brute force approach (Using 3-pointer) 04:55 Pseudocode 07:36 Code 09:27 Complexity 10:26 Better approach (Using Hashing) 12:23 Dry run 18:09 Code 20:15 Complexity 22:20 Optimal approach (Using 2-pointer) 23:20 2-Pointer Technique 31:50 Code 36:41 Complexity
@itzmartin20
@itzmartin20 10 ай бұрын
Just cameback for a quick revision, and now it's indeed got into my head, thanks for your crystal clear intuition!
@Pamir026
@Pamir026 11 ай бұрын
Yes! I was onto this optimal approach but my implementation failed because I wasn't thinking it through. Simply lovely explanation!
@deepak8720
@deepak8720 Жыл бұрын
Completely Understood your explanation! Thank you for what you are doing, and please continue the good work. You are an amazing teacher. Have watched 3 videos of yours and I was able to understand all 3 with out any confusions. Big thumbs up for the video. 👍
@jeet-smokey
@jeet-smokey 5 ай бұрын
We will never get such a detailed explanation of 3 Sum problem. You are a Legend for reason....Striver.....!!!!
@subhranshuswayampravadash4656
@subhranshuswayampravadash4656 Жыл бұрын
Thanks brother for helping and providing us amazing solutions of the most important questions that asked in MNC's. Thanks a lot brother🙏
@PrashantSingh-qr3vn
@PrashantSingh-qr3vn 11 ай бұрын
Are u a genius how do u know what doubts a newbie would have . U r just superb in explaining the Algo
@cinime
@cinime Жыл бұрын
Understood! Super amazing explanation as always, thank you very much for your effort!!
@abhijeetmishra3804
@abhijeetmishra3804 10 ай бұрын
how can one explain so smoothly man...Hats of STRIVER bhaiya
@ruchikaahujaasm
@ruchikaahujaasm 3 ай бұрын
Explained all 3 approaches very clearly. Thank you so much!!!
@pragyatripathi8833
@pragyatripathi8833 Жыл бұрын
I love the way you teach bhayiya.❤❤ I don't have seen the teacher like you....you are God of DSA.
@Manishgupta200
@Manishgupta200 Жыл бұрын
Thanks for the in-depth explaination with in-depth time and space complexity
@rajatyadav4077
@rajatyadav4077 Ай бұрын
It's interesting-I initially tackled this problem with three nested loops, but when the time exceeded, I decided to find a way to eliminate one loop and ended up developing a two-pointer solution. Although I found the solution, I still enjoy watching Striver's videos to refresh my mind, spark creativity, and discover new approaches to problem-solving.
@karthikeyan.s2565
@karthikeyan.s2565 Ай бұрын
Bro 3 loops was the best I could think of, I can't able to optimize it How do you develop this logical thinking ? Could you help me with this ?
@user-hp9kj8qt1h
@user-hp9kj8qt1h Ай бұрын
Me too pls
@graviton001
@graviton001 13 күн бұрын
I also solved with two pointer approach on my own after 3 loops got time exceeded 😊 he built my logical thinking
@rajatyadav4077
@rajatyadav4077 Күн бұрын
@@karthikeyan.s2565 This is a long process bro, keep in mind the techniques you have already employed and then try to come up with ideas for how we may shorten the loop as much as possible. Actually, after successfully answering an easy issue, I usually attempt to answer it in three or four ways (if at all feasible). Occasionally, after solving the problem, I peruse other people's answers on Leetcode to discover new strategies, and the Striker video assisted me in approaching the problem.
@ahssanakhtar5746
@ahssanakhtar5746 Ай бұрын
Amazing content learn a lot every day from your course.Thanks for creating such an amazing course.
@sharmavishal7239
@sharmavishal7239 Жыл бұрын
Bhai maine aapki dsa sheet aaj first time dekhi hai kya banayi hai bhai , sach main mja aa gya .... Thanku dil se striver bhai ❤
@disciplines4
@disciplines4 Жыл бұрын
nice all the three approaches, helped a lot.
@RahulKumar-zp1ln
@RahulKumar-zp1ln 11 ай бұрын
THANK YOU FOR EXPLANING IN SIMPLE WAY
@sdakshin1
@sdakshin1 2 ай бұрын
I found your explanation the best among all available... gd job
@piyushroy3278
@piyushroy3278 Ай бұрын
Too good man, more and more kudos to you for such explanation. now im getting grip on building logic...finally.
@swathigp3818
@swathigp3818 3 ай бұрын
Great examples, which helps understand the algorithm very clearly even for non CSE folks!!
@welcometoc.s.easpirants
@welcometoc.s.easpirants 8 ай бұрын
Awesome explaination. Thank u for such a great content.
@AmartyaPardeshi
@AmartyaPardeshi 11 ай бұрын
My man is doing God's work, thanks for this amazing playlist!
@shubhamagarwal1434
@shubhamagarwal1434 13 сағат бұрын
#Free Education For All.. # Bhishma Pitamah of DSA...You could have earned in lacs by putting it as paid couses on udamey or any other elaerning portals, but you decided to make it free...it requires a greate sacrifice and a feeling of giving back to community, there might be very few peope in world who does this...."विद्या का दान ही सर्वोत्तम दान होता है" Hats Off to you man, Salute from 10+ yrs exp guy from BLR, India.....
@jingfulin2322
@jingfulin2322 4 ай бұрын
Great job! your code is so clean.
@S__Arslaan
@S__Arslaan 10 ай бұрын
no need of condtion j
@rohansingh6329
@rohansingh6329 Жыл бұрын
awsm video striver ❤❤ the free education you are providing is helping a us alot.
@user-bj9qx9yf1o
@user-bj9qx9yf1o 11 ай бұрын
Hi, you are doing extremely good work DSA topics. You making concepts very clear. Glad that I got your channel reference. But un luckily I am from JavaScript background , i am finding a resources like anything for DSA, I dint get any . Your help will be appreciated on this.
@dipingrover1970
@dipingrover1970 5 ай бұрын
amazing exlanation , loved this video
@Bakwas_baate
@Bakwas_baate 2 ай бұрын
what a solution. MINDBLOWING!!!!
@user-yz6yk4vt6q
@user-yz6yk4vt6q 5 ай бұрын
what a fantastic explantion!!!!
@culeforever5408
@culeforever5408 9 ай бұрын
understood and came up with the optimal solution myself almost same. just used an extra set to store triplets 😅
@sarangkumarsingh7901
@sarangkumarsingh7901 4 ай бұрын
Another Awesome Lecture................
@JackCoderr
@JackCoderr Жыл бұрын
Thank you so much bhaiya....you are the best teacher ❤❤❤
@newbie8051
@newbie8051 16 күн бұрын
Was asked in Adobe interview for DEI hiring for specially abled candidates. Woah, thanks !
@manvendrasingh4369
@manvendrasingh4369 Ай бұрын
While solving this problem, the very first approach which comes to my mind was optimal. Although the way I was handling duplicates was giving time limit exceeded error so I have to took help from gpt but rest of the logic was correct. Feeling extremely happy.
@a1_32_aarushi8
@a1_32_aarushi8 Жыл бұрын
Thank you so much sir for such a nice explanation your are super sir❤
@eashan2405
@eashan2405 11 ай бұрын
Great explanation Striver ❤
@gamingchampions4105
@gamingchampions4105 10 ай бұрын
gained a subscriber with your amazing explanation
@rahulraaja5056
@rahulraaja5056 11 ай бұрын
Great Explanation 💯💯
@joeljacob4685
@joeljacob4685 11 ай бұрын
Beautiful dry run!! Understood😄
@sayakghosh5104
@sayakghosh5104 Жыл бұрын
Awesome explanation....
@NazeerBashaShaik
@NazeerBashaShaik 4 ай бұрын
Understood, thank you.
@tanya8353
@tanya8353 7 ай бұрын
Great Job again !!
@priyanshuagrawal7509
@priyanshuagrawal7509 9 ай бұрын
Now i can finally answer someone if someone ask me have you done 3Sum 😆. Thanks Striver 😉
@guneeshvats46
@guneeshvats46 29 күн бұрын
Amazing explanation
@bopon4090
@bopon4090 4 ай бұрын
Bro that hash map solution is so genius.
@priyankaghosh2670
@priyankaghosh2670 Жыл бұрын
best teacher in the world...........
@arunprashanna7494
@arunprashanna7494 11 ай бұрын
Perfect explanation
@samlinus836
@samlinus836 Жыл бұрын
Thank you bro, love from Tamil Nadu ❤
@anjigolla4853
@anjigolla4853 Жыл бұрын
superb explanation brother👏
@Azeem_Idrisi
@Azeem_Idrisi Жыл бұрын
Amazing explanation 👌💯
@udaytewary3809
@udaytewary3809 Жыл бұрын
Understood bhaiya 🙏 ❤️
@konankikeerthi
@konankikeerthi Ай бұрын
Understood bro. Thank you
@anasnadeem3259
@anasnadeem3259 Жыл бұрын
Great explanation 💯
@Benstokes555
@Benstokes555 6 ай бұрын
mind blown, dopamine released, love u striver
@dpxy1599
@dpxy1599 10 ай бұрын
got it nicely explained.
@aditikaushik3073
@aditikaushik3073 Жыл бұрын
Thanks a lot, sir !!
@AbhishekKumar-nz9dn
@AbhishekKumar-nz9dn 10 ай бұрын
understood brilliantly 😘
@tarunsingh7826
@tarunsingh7826 Жыл бұрын
Best explanation 🔥
@bitran4283
@bitran4283 11 ай бұрын
love it, thanks
@parthtiwari8152
@parthtiwari8152 11 ай бұрын
understood thanks striver
@AniketKumar-hf2bo
@AniketKumar-hf2bo 6 ай бұрын
understood ,thnx for explanation ❤❤❤❤❤❤👌👌💕💕💕💕
@user-xv7ms8bn2b
@user-xv7ms8bn2b 2 ай бұрын
best explaination !!!
@shashankgsharma0901
@shashankgsharma0901 16 күн бұрын
we can keep the indexes of the elements in the hashmap as well, in one loop; then while taking i and j, we can check whether the index is same as that of i or j or not. That would require less time complexity than the better solution.
@user-if3ce9gm7p
@user-if3ce9gm7p Ай бұрын
Understood sir thank you soo much sir
@sayantanpoddar5428
@sayantanpoddar5428 8 ай бұрын
understood!!! please came up with string series...please
@harshilpatel3205
@harshilpatel3205 Күн бұрын
Understood 🙏🏻
@souravmehraniya2832
@souravmehraniya2832 Жыл бұрын
Keep going brother ❤
@hashcodez757
@hashcodez757 2 ай бұрын
Mza aagya Understood!!
@sahulraj9536
@sahulraj9536 5 ай бұрын
we can do a small improvement int the optimal code if nums[i]>0 then we can break the loop and return answer directly
@nightgamer8953
@nightgamer8953 9 ай бұрын
HashSet in C# still stores duplicate List in C# . Is there any alternatives in C# to store unique List of Integers?
@Sumeet_100
@Sumeet_100 3 ай бұрын
Thank you ❤
@sakshiagrawal9106
@sakshiagrawal9106 4 ай бұрын
thank you so much bhaiya❤
@swacharahman5084
@swacharahman5084 Жыл бұрын
Thank you bhaiya, Love from bangladesh
@saketjaiswal9381
@saketjaiswal9381 Жыл бұрын
thank us sir again
@SatheeshKumar-kg1yn
@SatheeshKumar-kg1yn 5 ай бұрын
Clealy understood
@UECAshutoshKumar
@UECAshutoshKumar 2 ай бұрын
Understood 👍
@anmjubaer
@anmjubaer 8 ай бұрын
Great explanation but what about the time complexity of those 2 while loops from the optimal solution? Can you elaborate a bit here please?
@_SahilShah
@_SahilShah 25 күн бұрын
Understood! I went somewhere near the optimal approach but wasnt able to come up with the concrete solution
@GhostVaibhav
@GhostVaibhav 5 ай бұрын
Understood🔥
@RituSingh-ne1mk
@RituSingh-ne1mk 7 ай бұрын
Understood!
@manambalaji9547
@manambalaji9547 9 ай бұрын
Excellent 👌
@Shivi32590
@Shivi32590 29 күн бұрын
thank you
@anuragprasad6116
@anuragprasad6116 5 ай бұрын
3-sum code using 2 for loops and 1 while loop. Using for loops helps in more readability in this problem. // Sort the vector and create ans array. sort(arr.begin(), arr.end()); vector ans; // Iterate the sorted array. for (int i = 0; i < n; i++) { // Make sure first element of triplet is unique. // Now whole array on right of 'i' is a 2-sum problem. if (i > 0 && arr[i] == arr[i-1]) continue; // Take -ith element as target. int twosum = -arr[i]; int right = n-1; // Look for unique 2nd element in the search space. Notice that for // each unique i, the pairs that create 3sum with it are unique. // Similarily, for each unique j, the 3rd element will be unique. for (int j = i+1; j < right; j++) { // Looking only for unique 2nd element. if (j > i+1 && arr[j] == arr[j-1]) continue; // Look for its partner. while (j < right && arr[j] + arr[right] > twosum) right--; // No need to skip. All the 2nd elements are unique! if (arr[j] + arr[right] == twosum && j != right) ans.push_back({arr[i], arr[j], arr[right]}); } } return ans; Similarily, 4sum can be broken down as: first unique element + 3sum in remaining search space.
@shubhamkumar170
@shubhamkumar170 10 ай бұрын
Understood!! ❤❤
@vishalgupta7522
@vishalgupta7522 Жыл бұрын
Line 29: Char 10: error: type 'vector' does not provide a call operator ans(st.begin(), st.end()); ^~~ 1 error generated. brute force code
@lakshmiprasanna7058
@lakshmiprasanna7058 Жыл бұрын
Understood 💯💯💯
@trinitykhuman
@trinitykhuman 7 ай бұрын
I was looking for brute force approach tried myself but couldn't remember I have to used set DS but now , I can understand where I was wrong. Thanks for the tutorial.
@impalash_ag
@impalash_ag Ай бұрын
Hi Raj, there are 2 slight mistakes in your optimal solution. 1: The for loop will run till n-2 instead of n, because when i=n-1, j becomes n (j=i+1=n-1+1) and num[j] throws out of bound exception. 2: We could also insert another check in the for loop(nums[i] = 1 there's no way any 3 elements sum would be 0 since the array is now sorted. 3: Here's the more readable code(JAVA): class Solution { public List threeSum(int[] nums) { int n = nums.length; List result = new ArrayList(); Arrays.sort(nums); for(int i=0; i low && nums[high] == nums[high+1]) high--; } else { result.add(Arrays.asList(nums[i], nums[low], nums[high])); low++; high--; while(low < high && nums[low] == nums[low-1]) low++; while(high > low && nums[high] == nums[high+1]) high--; } } } }
@firebout7675
@firebout7675 7 ай бұрын
understoood
@arnavumarkar8259
@arnavumarkar8259 Жыл бұрын
Thank You
@placement123
@placement123 6 ай бұрын
when implementing the second approach instead of using set, we can use unordered_map(with the second key as its index), and we will start i from 0 and j from i+1 and for the third value we can ensure by checking that the index of the last target element from the map should be greater than j :)
@lakshsinghania
@lakshsinghania 3 ай бұрын
hey, im not able to digest this thing in the 2nd approach arr is -1 0 1 2 -1 4 and the i & j are pointing at -1 and -1 so arr[k] = -(-2) = 2 so for this we need to search in the entire array right and he stored [0 1 2] elements between -1 and -1 but what if the arr was like this 1 0 1 2 3 -4 and i is pointing to 1 and j pointing to 3 then arr[k] = -(4) = -4 then if we store [ 0 1 2 ] we will not find in the set as -4 is after the j pointer could u pls make me understand this as im bit confused
@CoDeEnthusiast-ev9zu
@CoDeEnthusiast-ev9zu 2 ай бұрын
​@@lakshsinghaniayou are right but there is a catch here , When i is pointing to 1 and j is pointing to 3 we need to search for -4 in the hashset which is not available. However after that we will add the arr[j] into the hash set i.e. we will add the element 3 into hash set .. So in the next step j will point to 4 now we have to search for -(1-4) = 3 and this element 3 is present in the hashset thereby we will get the required unique triplet
@YourCodeVerse
@YourCodeVerse 9 ай бұрын
Understood✅🔥🔥
@senseiAree
@senseiAree 10 ай бұрын
Understood ❤
@her_soulmate
@her_soulmate 11 ай бұрын
Understood 🎉
@abhishekverma9946
@abhishekverma9946 Жыл бұрын
Understood.🙂
@VishalPanwar-df5ek
@VishalPanwar-df5ek Жыл бұрын
Understood man !!!!!!!!!!!!!!!!!!
4 Sum | Brute - Better - Optimal with Codes
28:47
take U forward
Рет қаралды 147 М.
How to start a Career in Data Science - [Hindi] - Quick Support
9:17
Finger Heart - Fancy Refill (Inside Out Animation)
00:30
FASH
Рет қаралды 29 МЛН
Smart Sigma Kid #funny #sigma #memes
00:26
CRAZY GREAPA
Рет қаралды 6 МЛН
Integer to Roman | Leetcode #12
17:34
Techdose
Рет қаралды 38 М.
Majority Element II | Brute-Better-Optimal
26:58
take U forward
Рет қаралды 150 М.
How I would learn Leetcode if I could start over
18:03
NeetCodeIO
Рет қаралды 403 М.
Coding Interviews Be Like
5:31
Nicholas T.
Рет қаралды 6 МЛН
Count Subarray sum Equals K | Brute - Better -Optimal
24:09
take U forward
Рет қаралды 255 М.
3Sum - Leetcode 15 - 2 Pointers (Python)
9:42
Greg Hogg
Рет қаралды 7 М.
Kadane's Algorithm | Maximum Subarray Sum | Finding and Printing
20:09
take U forward
Рет қаралды 364 М.
Finger Heart - Fancy Refill (Inside Out Animation)
00:30
FASH
Рет қаралды 29 МЛН