DP 18. Count Partitions With Given Difference | Dp on Subsequences

  Рет қаралды 223,582

take U forward

take U forward

Күн бұрын

Пікірлер: 679
@takeUforward
@takeUforward 3 жыл бұрын
I need your support, and you can do that by giving me a like, and commenting "understood" if I was able to explain you. Keeping a like target of 500 ❤✌🏼
@iamnoob7593
@iamnoob7593 Жыл бұрын
understood
@himalayadebbarma-we4pt
@himalayadebbarma-we4pt 6 ай бұрын
Understood
@shubhamshukla4215
@shubhamshukla4215 4 ай бұрын
what if test case in dp17 is like {2, 0 , 0 , 4 , 2 ,2} and sum = 4 , then will this solution work ? i guess at the time whenever we found sum == 0 at index > 0 , then we have to calculate number of zero till index == 0 let's suppose it is z , and then retum 2^z . What everyone think about it ?
@AbhishekKumar-cv1dh
@AbhishekKumar-cv1dh Жыл бұрын
I'll be honest, I was bamboozled with the 0's in array edge case since DP17 and I was simply unable to find a clear answer from the comments. Had I simply closed my eyes and went ahead with DP 18, I would have legit saved ~ 2 hours of confusion!! Thankyou so much Striver, this lecture cleared all my doubts 🔥🔥🔥🔥🔥
@mayanksingh7501
@mayanksingh7501 9 ай бұрын
Those confusion and doubts and 2 hours will only help in longer run. Good work on not directly jumping to another video without clearing your doubts on your own.
@after_dark_777
@after_dark_777 8 ай бұрын
for real should have moved on to this video those comments were so confusing
@SamreenAftab-lg8tx
@SamreenAftab-lg8tx 7 ай бұрын
Samee
@solitucedagar4298
@solitucedagar4298 6 ай бұрын
sameeeeeeeeeeee
@nikhilmadaan29
@nikhilmadaan29 7 ай бұрын
hats off man,, spent 2 hours on DP17 to fix that but after watching this DP 18 everything went super smooth
@mohaksharma1412
@mohaksharma1412 18 күн бұрын
lol same it was worth it though
@saurabhsaha6958
@saurabhsaha6958 10 ай бұрын
Striver's concept explanation is so cool, easy and easily get stuck into the head. I wish to meet him one day and say a lot of thanks to him.
@Aniruddha_Chowdhury
@Aniruddha_Chowdhury 8 ай бұрын
understood until 14:00 ❤ . Will learn the optimization later
@saketsoni2587
@saketsoni2587 Жыл бұрын
I studied DP from aditya verma, but was never able to figure out how to handle the zeros in the array, you made it super easy, Thanks!
@entertainmenthub373
@entertainmenthub373 Жыл бұрын
but aditya verma always tell you the in=dentification and where u can use this apparoach nd similar questions he is the god of cp ik he skip the case of 0 in array but aditya verma is for cp where u can use which approach and how to identify which approach by seeing solution
@iamnoob7593
@iamnoob7593 Жыл бұрын
@@entertainmenthub373 God of cp is tourist.
@divyanshrawat2859
@divyanshrawat2859 7 ай бұрын
its not like he was not able to figure out , he always gives an intution to solve the problem , not like come and tells you the whole solution.
@saumyasharma9993
@saumyasharma9993 2 ай бұрын
aditya vermas approach works with zeroes as well, as in that we subtract dp[i-1][j-arr[i-1]]
@cs26divyanshisachan37
@cs26divyanshisachan37 Жыл бұрын
Understood! Hats off to ur dedication, u are still teaching while suffering from fever.
@pulkitchausali1354
@pulkitchausali1354 2 жыл бұрын
Already understood before starting of video that's what Striver teaches us
@PIYUSH61004
@PIYUSH61004 2 жыл бұрын
The deduction of (totalSum - D) / 2 was amazing. Understood!
@narendramaurya4823
@narendramaurya4823 10 ай бұрын
Us, but the way you transformed the problem into previously solved problem is amazing , that's the way we have to think ... Thanks ❤
@gauravgogoi5240
@gauravgogoi5240 9 ай бұрын
After this video, they updated the problem! Real influencer
@adebisisheriff159
@adebisisheriff159 Жыл бұрын
Understood! Striver. The best Software Engineer himself
@stith_pragya
@stith_pragya Жыл бұрын
UNDERSTOOD.........Thank You So Much for this wonderful video...............🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻
@chetanthakral5322
@chetanthakral5322 3 жыл бұрын
Another modified target could be (difference + totalSum)/2; To explain this how this came is : s1= sum of elements in subset 1 s2 = sum of elements in subset 2 s1 - s2 = d (We need to find 2 subsets with difference d ) s1 + s2 = totalSum (We know the sum of 2 subsets would be equal to the total sum of array) Adding these 2 equations , we get s1 = (d + totalSum)/2, thus we only need to find a subset with sum s1.
@takeUforward
@takeUforward 3 жыл бұрын
But this will increase the space req :)
@chetanthakral5322
@chetanthakral5322 3 жыл бұрын
@@takeUforward Oh Okay , I didn't think about that !
@varunaggarwal7126
@varunaggarwal7126 Жыл бұрын
@@chetanthakral5322 lol, I thought the same thing, but its not pure math its cs.
@UCSParnashreeDas
@UCSParnashreeDas Жыл бұрын
@@varunaggarwal7126 how this increases the space.. can u explain
@varunaggarwal7126
@varunaggarwal7126 Жыл бұрын
@@UCSParnashreeDas it's been 1 month,lol i have to revise this dp, but I guess you can see + sign while striver is subtraction, means less
@balajisrinivasan6618
@balajisrinivasan6618 Жыл бұрын
Thank you striver ! Just a note : writing recursion from 0 to n-1 looks far easier to handle bases cases than writing recursion from n-1 to 0 on subsequence problems
@santoshpokhrel7693
@santoshpokhrel7693 Жыл бұрын
but for me it creates problem while writing the tabulation form. Esp. with all the subsequences questions.
@chase.2595
@chase.2595 Жыл бұрын
yeah man, we have to start from n-2 if we do 0 to n-1 in recursion@@santoshpokhrel7693
@ganeshktvb9234
@ganeshktvb9234 Жыл бұрын
yaa bro really it creates confusion in tabulation @@santoshpokhrel7693
@ankanbasu7381
@ankanbasu7381 2 жыл бұрын
4:48 or I think, we can go 1 step deeer into indx = -1 then base case would be simpler if (indx == -1) { if (sum == 0) return 1; else return 0; }
@introvert9112k
@introvert9112k Жыл бұрын
Then how do you take care of base case in Tabulation. As dp array cannot have -ve indexes.
@RTXCR7
@RTXCR7 Жыл бұрын
@@introvert9112k for that i think we would need to make 1 indexed arrays of size n+1 having an extra 0 index free
@vaibhavrai7042
@vaibhavrai7042 6 ай бұрын
To deal with the 0 case, we can also take the dp array to be of size [n+1][sum+1] and initialize the dp[n][0]=1 int[][] dp = new int[n+1][sum+1]; dp[n][0]=1; for(int index=n-1;index>=0;index--)
@anonymous-p4m
@anonymous-p4m Ай бұрын
The lecture is awesome as always. Thank you so so much for making these videos even when you are sick. You inspire me to work hard. Thank you again :)
@itsmepratham2712
@itsmepratham2712 Жыл бұрын
For Those who did not understand why total sum-d has to be even so imagine totalsum=15 and d=2 now count s2=(15-2)/2 it will give s2=6; ans s1-s2=d so s1=2+6=8 now here it is said that s1+s2=totalsum but s1+s2=14 which is not equal to total sum to total sum-d has to be even
@molymusic1188
@molymusic1188 8 ай бұрын
thankyou my guy🙌
@blackblood181
@blackblood181 Жыл бұрын
we can also use : if(ind < 0){ if(sum==0) return 1; return 0; } apart from these conditions: if(ind == 0) { if(sum==0 || num==arr[0]) return 1; if(sum==0 && arr[0]==0) return 2; return 0; }
@anuragprasad6116
@anuragprasad6116 Жыл бұрын
this makes the code really simple to understand. perfect base case.
@theterror9080
@theterror9080 Жыл бұрын
Best Bhai @@anuragprasad6116
@manojnandhan8677
@manojnandhan8677 6 ай бұрын
but how will you handel -1 index in tabulation?
@harshitsharma5647
@harshitsharma5647 2 жыл бұрын
Superb Bhaiya guys watch at 10:10 Amazing Concept Again and again Thankyou bhaiya Aka Striver
@mohaksharma1412
@mohaksharma1412 18 күн бұрын
Thanks to striver i could come up with using DP-17 by my own including the edge cases
@Sneha-gb7iq
@Sneha-gb7iq 4 ай бұрын
For tabulation, we can do dp[0][0]=1 and dp[0][nums[0]]+=1 Without checking for all cases
@AmanBawane-o9q
@AmanBawane-o9q 7 ай бұрын
another base case(Better and Concised): if(ind
@gauravgogoi5240
@gauravgogoi5240 9 ай бұрын
15:00 the most important point to be noted if you are in an intervie
@anmol3749
@anmol3749 Ай бұрын
Understood Thank you striver🙌🙌
@champu5645
@champu5645 2 жыл бұрын
I thing the simplest way to get rid of so many conditions of 0's we can simply start the recursion for 0 to n-1; then we will get correct ans i.e.4;
@nithish_raina
@nithish_raina 2 жыл бұрын
Yes, and it would also work even if the array doesn't contains any zeroes.. The base cases are also so simple to handle over here.
@VinayKumar-xs6el
@VinayKumar-xs6el 4 ай бұрын
can u share the code here please that starts from 0 & ends at n-1
@champu5645
@champu5645 4 ай бұрын
@@VinayKumar-xs6el will share soon, i also have to check where i have written the code. It's been 2 years
@soumik5854
@soumik5854 6 ай бұрын
solved this problem on my own very proud of this
@MukeshKumar-cc3uh
@MukeshKumar-cc3uh 11 ай бұрын
Understood 👍. Hats off to your dedication for us. ♥
@dharmeshpoladiya9047
@dharmeshpoladiya9047 2 жыл бұрын
Understood 💯💯Great Explanation. Thank you very much for all you efforts🔥🔥
@Lyrics_dunya
@Lyrics_dunya 11 ай бұрын
For Problem 17 , I struggled a bit in Tabulation while writing the base cases for the new changes. All 3 cases covered, also notice the bases cases are written in reverse order, so that the priority is given to the last one if its true. One more thing since we are considering the case for i = 0, please start the 2nd loop of target from 0 till k(inclusive). Happy learning! dp[0][0] = 1 if arr[0]
@TyagiAviral
@TyagiAviral 7 ай бұрын
Hey, thank you. Great comment.
@parthsalat
@parthsalat 2 жыл бұрын
Guys! For DP 17, Memoization code, striver's approach is correct (6:38), but here's a cleaner alternative for the base case: if(ind
@abhishekgururani6993
@abhishekgururani6993 2 жыл бұрын
It'll be hard to convert this base case to tabulation dp states as it's not well defined wrt the indices.
@parthsalat
@parthsalat 2 жыл бұрын
@@abhishekgururani6993 You're right. But the tabulation base cases are straightforward and simple. One can write that by applying basic logic.
@amitmahato6404
@amitmahato6404 2 жыл бұрын
Yes, I also tried this. got correct in both tabulation and memoization. Striver has complicated this solution a little bit.😅
@amitmahato6404
@amitmahato6404 2 жыл бұрын
@@abhishekgururani6993 Simple base case, if sum == 0, return 1; means fill all the 0 indices row with 1. The change is that you have to traverse j=0 to j
@GManiKarthik
@GManiKarthik 2 ай бұрын
#Understood #DP18 #Hatsoff #Striver
@TheDebuggers-fx9vp
@TheDebuggers-fx9vp 5 ай бұрын
i thnk a sligh change in base case can handle all the case well,instead of returning when we encounter the target to 0; if we keep exploring until the end of the tree then we can get our desired result class Solution { public: int helper(int arr[], int n, int sum, vector& dp) { // Base case: If there are no elements left if (n == 0) { return (sum == 0) ? 1 : 0; } // If the subproblem has already been solved, return the stored result if (dp[n][sum] != -1) return dp[n][sum]; // Compute the result for this subproblem int notPick = helper(arr, n - 1, sum, dp); int pick = 0; if (arr[n - 1]
@yashshukla1637
@yashshukla1637 Ай бұрын
Done. Understood the concepts so well.
@aryanagrawal4794
@aryanagrawal4794 3 жыл бұрын
bhaiya in count subset problem which u had taken earlier , in tabulation the loop started from 0 to sum but when sum==0 it has been handled previously right? then it should start from 1 right? as in problem subset sum==k u started the sum loop from 1 to sum as for sum==0 we have handled it previously before the loop.
@takeUforward
@takeUforward 3 жыл бұрын
Yes u can, won’t be an issue :)
@aryanagrawal4794
@aryanagrawal4794 3 жыл бұрын
@@takeUforward yes i did that in the count subsets problem, but when I did that in the current problem of partition i.e. looping from 1 to sum it's giving WA, but when i changed to 0 to sum it's giving correct and. Why so?
@takeUforward
@takeUforward 3 жыл бұрын
@@aryanagrawal4794 because in partition at 0 there are other cases to handle. Here at 0, its take and notTake, hence
@aryanagrawal4794
@aryanagrawal4794 3 жыл бұрын
@@takeUforward ok bhaiya got it.
@madhurnarang2440
@madhurnarang2440 2 жыл бұрын
@@aryanagrawal4794 Hey can you explain it to me?
@akr1831
@akr1831 2 жыл бұрын
Thankyou very much for explaining base case of last question. I was stacked for last 6 hours. ❤️❤️
@tarunrao1505
@tarunrao1505 Жыл бұрын
Hello, The tabulation code is not passing all test cases in both videos dp-17 && dp-18. Is anyone facing the same problem. Pls HELP.
@aryarajendra1088
@aryarajendra1088 4 ай бұрын
same bhai
@architgupta3551
@architgupta3551 4 ай бұрын
@@aryarajendra1088 #include int countPartitions(int n, int d, vector &a) { // Write your code here. long long sum=0; for(int i=0 ; i
@kevalkishan3824
@kevalkishan3824 4 ай бұрын
@@aryarajendra1088 try doing mod with 10^9+1 dp[row][col] =(dp[row][col]%mod+ dp[row-1][col]%mod)%mod; int val = num[row-1]; if(col>=val){ dp[row][col] =(dp[row][col]%mod+ dp[row-1][col-val]%mod)%mod; }
@ScienceSeekho
@ScienceSeekho 2 жыл бұрын
understood. Also thanks for explaining Space Optimization so good. I am from tier-3 mechanical never knew all these stuff
@Parthj426
@Parthj426 7 ай бұрын
us But i got confused as in DP 18 ques , it is written that two partitions have their union as Whole array . It should have been given that both are exclusive of each other , for being self-explanatory well.
@hashcodez757
@hashcodez757 6 ай бұрын
"UNDERSTOOD BHAIYA!!"
@techietech7073
@techietech7073 2 жыл бұрын
for DP 17 for [ 7,1,0,2,5] with tar=7 Method 1: originalAns*(pow(2,n)) Method2: Changes in base case will that work? I can see from recursion tree there would be redundant calls at level where 0 is considered
@YatriSpecial
@YatriSpecial 2 жыл бұрын
How do I write the base case in tabulation, Could you please tell me?
@nithish_raina
@nithish_raina 2 жыл бұрын
Method 1 is time intensive if let's say the no of zeroes were 15-20 in an array...Hence method 2 with handling zero in the base cases is required at such cases.
@andrewcenteno3462
@andrewcenteno3462 7 ай бұрын
That algebra at 10:15 is crazy I would never see that under the time constraints of a real interview. It's brilliant tho
@ritikshandilya7075
@ritikshandilya7075 7 ай бұрын
Great Explanation Striver , Thanks
@ntgrn-pr5yx
@ntgrn-pr5yx 3 ай бұрын
understood , thank you striver
@sahilarya9510
@sahilarya9510 3 жыл бұрын
please tell us the time when this amazing course will get end......expected time??
@dharsan.s7937
@dharsan.s7937 3 жыл бұрын
March
@anveshkarra3861
@anveshkarra3861 2 жыл бұрын
understood , the space optimization is amazing sir
@TanviPoddar-f1k
@TanviPoddar-f1k 8 ай бұрын
At 15:15, shouldn't the condition be ((nums[0] != 0)&&(nums[0] == target)) ??
@uvs_6032
@uvs_6032 Жыл бұрын
I have a doubt. The question says the the union of two subsets will give the original array , that means there can be repeating elements and its not necessary that S1 + S2 = totalSum E.g -> arr = {1, 2, 3, 4, 5} totalSum = 15 S1 = {1, 2 ,3, 4} S2 = {1, 5} sum1 = 1 + 2 + 3 + 4 = 10 sum2 = 1 + 5 = 6 The union of the above two will give original array but sum1 + sum2 != totalSum. So how is the code working ? Is the problem statement wrong?
@kushbudhiraja4927
@kushbudhiraja4927 Жыл бұрын
you are right code is only passing 6 test cases not all
@paracetamol9116
@paracetamol9116 7 ай бұрын
the question's wording is wrong, look at the same question on gfg, won't see "union" written anywhere.
@chaitralishinde7815
@chaitralishinde7815 5 ай бұрын
Understood better than ever!
@rohandevaki4349
@rohandevaki4349 2 жыл бұрын
at 15:53 , the target should run from 1 to sum right? we have run from 1 to sum in the count subsequences with sum k also, why did you take from 0 to sum?
@adityasaini7165
@adityasaini7165 Ай бұрын
we can also do like this, private static int count(int i, int[] num, int k){ if(i == num.length){ if(k == 0){ return 1; }else{ return 0; } } int take = 0; if(k >= num[i]) take = count(i + 1, num, k - num[i]); int notTake = count(i + 1, num, k); return (take + notTake) % MOD; }
@kathanvakharia
@kathanvakharia Жыл бұрын
Understood...Completed 18/56
@tallalhabib4526
@tallalhabib4526 2 жыл бұрын
What if we find with target = totalsum Then at n-1 iteration of tabulation find S1 and S2 by totalsum - S1. Then If S1>=S2 and S1-S2=D we can return True else False
@sanskarjaiswal4394
@sanskarjaiswal4394 Жыл бұрын
Instead of changing the code we can just add a if statement before "take" variable that if arr[index]== 0 then skip it...
@shoryapawar2219
@shoryapawar2219 Жыл бұрын
Understood Thanks Striver for this Dp series
@the_shridhar
@the_shridhar 9 ай бұрын
just add this in previous question: ``` if (i < 0) { return !target; } ```
@shauryatomer1058
@shauryatomer1058 3 ай бұрын
thanks for another great video
@SaiPhaniRam
@SaiPhaniRam 2 ай бұрын
Python implementation: def countPartitions(n: int, d: int, arr: List[int]) -> int: ''' Carefully analyze the problem. Let S1, S2 be the sum of two different subsets S1 + S2 = total_sum of array elements Goal: Count the subsets, such that (S1 >= S2) and (S1 - S2 = D) total_sum = S1 + S2 => S1 = total_sum - S2 From S1 - S2 = D total_sum - S2 - S2 = D S2 = (total_sum - D) // 2 (or) S1 = (total_sum + D) // 2 Problem boils down to finding number of subsets whose sum is (total_sum - D) // 2 (or) sum is (total_sum + D) // 2 ''' ''' Space Optimization ''' if not arr: return 0 total_sum = sum(arr) target = (total_sum - d) // 2 # print('Target: ', target) if (total_sum < d) or (total_sum - d) % 2 != 0: return 0 mod = 10 ** 9 + 7 prev = [0 for t in range(target + 1)] # Base Cases # 1. At index 0, if val == 0 => 2 (pick/ unpick doesn't matter) # 2. Else, At index 0, val 1 way (pick it) prev[0] = 2 if arr[0] == 0 else 1 if arr[0] != 0 and arr[0]
@tami9154
@tami9154 Жыл бұрын
wouldn't it be better to go an ind
@arpitrajput6424
@arpitrajput6424 2 жыл бұрын
In Lecture 17 , we can sort the vector and reverse it, then no need to change base case it will work absolutely fine.
@riddhibandyopadhyay584
@riddhibandyopadhyay584 2 жыл бұрын
Yes, but it will take extra time complexity
@arpitrajput6424
@arpitrajput6424 2 жыл бұрын
@@riddhibandyopadhyay584 ya you're right but can be done ✅ with this approach .👍
@priyankabagal9269
@priyankabagal9269 2 жыл бұрын
You have literally made dp look so easy !
@madmaxgaming5864
@madmaxgaming5864 Жыл бұрын
just mind blowing how you came up with the modified target, kyse kar lete ho bhaiya?
@musichub2168
@musichub2168 2 жыл бұрын
Understood 💯💯Great Explanation
@manishisaxena5657
@manishisaxena5657 Жыл бұрын
actually we can make the base case as if(index == -1) { if(tar == 0) return 1; return 0; }
@anuragprasad6116
@anuragprasad6116 Жыл бұрын
underrated! taking this as a base case really simplifies the solution.
@SatyamKumarJha-v6y
@SatyamKumarJha-v6y 13 күн бұрын
How will you use tabulation in this
@ankishkhandelwal1061
@ankishkhandelwal1061 2 жыл бұрын
In case arr =1,2,3,4 Diff =2 S1>S2 Target is =(10-2)/2 =4 Give 2 as answer 4 3,1 But 1+2+3-4=diff How this case will handle
@ShahNawaz-cx3pi
@ShahNawaz-cx3pi 2 жыл бұрын
In question it is mentioned that the union of both the set is equal to the given array.
@ankishkhandelwal1061
@ankishkhandelwal1061 2 жыл бұрын
@@ShahNawaz-cx3pi got it
@akashkumarsingh3595
@akashkumarsingh3595 2 жыл бұрын
If we have handled the case num[0] == 0 previously then why we are checking it again for num[0]
@shriRadheHariom
@shriRadheHariom 6 ай бұрын
Understood, well explained.
@shubh625
@shubh625 6 ай бұрын
ok
@tasneemayham974
@tasneemayham974 Жыл бұрын
UNDERSTOOODD!!! Thank you, Striver!!
@pankajpal9945
@pankajpal9945 Ай бұрын
for dp 17, why don't we go past 0 and let recursion handle the cases. i.e. if you reach -1, check if target is zero.
@nehakaushik3602
@nehakaushik3602 2 жыл бұрын
OMG bhaiya ...simple "genius"
@mayankmalhotra21
@mayankmalhotra21 Жыл бұрын
if someone is going from 0 to n if(i==arr.length) { if(tar==0) return 1; else return 0; } this will handle the case for zero (1, 0,0 ) will give -> 4 (if tar = 1)
@DevashishJose
@DevashishJose Жыл бұрын
understood. Thank you so much
@ramyasree4986
@ramyasree4986 2 жыл бұрын
completed subsequences set problems great learning
@VikasGupta-ok9lh
@VikasGupta-ok9lh 2 жыл бұрын
In that case my recursive code was going from 0 to n-1 and to avoid case of zero I sorted my array hence all the zero cases were sorted
@inderjotsingh5868
@inderjotsingh5868 Жыл бұрын
you don' t even need this , just go from 0 -> n , and if at n , target == 0, return 1 else 0 , all other cases are already been taken care off , if you do in this way . How ? our code will do this will we are making the recursive calls at n-1
@rajatsingh4286
@rajatsingh4286 Жыл бұрын
Striver can you explain the approach when there are negative elements also in the array
@sarthakkrishna3492
@sarthakkrishna3492 Жыл бұрын
use a map
@rajatsingh4286
@rajatsingh4286 Жыл бұрын
@@sarthakkrishna3492 how ? can you explain with example
@shreyashtech8556
@shreyashtech8556 10 ай бұрын
bro doing gods work
@shubhrajyotipoddar1684
@shubhrajyotipoddar1684 9 ай бұрын
if(k==0) dp[ind][k]= 1; if(ind==0) return (arr[ind]== k)?1:0; I feel like not returning and instead adding 1 to the dp should do the trick And in case of tabulation: dp[0][0] = 1; this should do instead of the for loop of ind= 0 to n-1{dp[i][0] =1}
@ayushgautam8000
@ayushgautam8000 2 ай бұрын
Why you didn't solve it using the concept of DP16 where we were minimizing the difference between the subsets?
@namanchandak1532
@namanchandak1532 2 жыл бұрын
at 14:03 why you removed for() dp[i][0]=1;
@parthsalat
@parthsalat 2 жыл бұрын
DP 18 starts from 7:25
@ShahNawaz-cx3pi
@ShahNawaz-cx3pi 7 ай бұрын
*********** Iterative Code for the count number subsequence whose sum is k ( & 0
@affanrahman5711
@affanrahman5711 3 жыл бұрын
In lecture 17, can we handle the cases having zeroes by just multiplying our previous answer with pow(2,n) where n is the no. of zeroes
@takeUforward
@takeUforward 3 жыл бұрын
I discussed that only, but that adds a log n
@sourabhchoudhary7289
@sourabhchoudhary7289 3 жыл бұрын
@@takeUforward Does 1ll
@prabhakaran5542
@prabhakaran5542 11 ай бұрын
Understood ❤
@kushalgupta2041
@kushalgupta2041 24 күн бұрын
hey can't we do it like this remove the base case to this idx < 0 then if sum == 0 return 1 or else 0; now what will happen is if idx == 0 and sum == 0 then we will use take and notTake both, but if only sum is 0 but not arr[0] then only notTake and when sum == arr[0] and both are not zero then only Take will execute so eventually u don't have to write 3 lines of extra code right?
@codeforcesaccount
@codeforcesaccount Жыл бұрын
understood
@saileshsirari2014
@saileshsirari2014 5 ай бұрын
Other was is just check when you reach end of nums int rec (int pos, int [] nums , int target,int sum, int mem [] []){ if(pos == nums.length){ if(target==0 ) return 1; return 0; } if( mem[pos][target]!=-1) return mem[pos][target]; int take =0; if(target>=nums[pos]){ take = rec(pos+1,nums,target- nums[pos],sum,mem); } int nonTake = rec(pos+1,nums,target,sum,mem); mem[pos][target] = nonTake+take; return mem[pos][target]; }
@hrushikesh-1914
@hrushikesh-1914 Жыл бұрын
Understood. Thankyou sir.
@kushjoshi9716
@kushjoshi9716 2 жыл бұрын
Nicely Explained! Understood!
@sushrutasengupta1273
@sushrutasengupta1273 8 ай бұрын
If we had added the equations then s=T+D/2 would've happened which would remove requirements of ec 1
@TON-108
@TON-108 Жыл бұрын
Understood Bhaiya!
@ranasauravsingh
@ranasauravsingh 2 жыл бұрын
UNDERSTOOD... ! Thanks striver for the video... :)
@swagcoder
@swagcoder Жыл бұрын
Can anyone please explain why target is starting from 0 here? in all other problems it's starting from 1. If I take 1, some test cases are failing
@RVcalisthenics
@RVcalisthenics 5 ай бұрын
understood sir🙂
@stain0p101
@stain0p101 Жыл бұрын
Thank you striver, made it super easy and interesting to learn DP. "UNDERSTOOD" 💓💓
@kumarpurushottam632
@kumarpurushottam632 2 жыл бұрын
Thanks a Lot Striver 🥰
@ak67373
@ak67373 Ай бұрын
We can also solve it by (total sum+ d)/2
@sonicboom6635
@sonicboom6635 Жыл бұрын
In the space optimized solution why the loop sum=1 to target doesn't work as we have been doing previously and setting curr[0] =1 since for any index with target as 0 there is only single subset. Can someone explain please?
@himanshuagrawal8012
@himanshuagrawal8012 2 жыл бұрын
as we are handing separately so now we need our TARGET LOOP should start from 0...correct ??
@SatyamKumar-bw4vi
@SatyamKumar-bw4vi Жыл бұрын
Hare Krishna..!! understood.
DP 17. Counts Subsets with Sum K | Dp on Subsequences
36:57
take U forward
Рет қаралды 244 М.
Enceinte et en Bazard: Les Chroniques du Nettoyage ! 🚽✨
00:21
Two More French
Рет қаралды 42 МЛН
Try this prank with your friends 😂 @karina-kola
00:18
Andrey Grechka
Рет қаралды 9 МЛН
1 Atheist vs 25 Christians (feat. Alex O'Connor) | Surrounded
1:33:20
AI Is Making You An Illiterate Programmer
27:22
ThePrimeTime
Рет қаралды 209 М.
The hardest problem on the hardest test
11:15
3Blue1Brown
Рет қаралды 15 МЛН
DP 20. Minimum Coins | DP on Subsequences | Infinite Supplies Pattern
34:15
Why is every React site so slow?
13:52
Theo - t3․gg
Рет қаралды 135 М.
8 patterns to solve 80% Leetcode problems
7:30
Sahil & Sarra
Рет қаралды 509 М.