Bhai apne recursion ko bahut easy kar diya he me bahut kam use karta tha recursion but now i am comfortable with recursion 😅
@ashaykoradia24752 жыл бұрын
17:10 "Its her choice" - I laughed so hard🤣. Thank you for making these amazing videos. You make things a cakewalk. I am preparing for interviews for product based companies now and one day when I get there, I am definitely returning all the favour of learning from you!🙌
@sanskarsinghiit Жыл бұрын
++,
@simranbansal56442 жыл бұрын
I have never finished any youtubers playlist till now, but completed this one, the things look so easy. Thank You.
@eshitakalsi76824 жыл бұрын
How can someone dislike a video as good as this? :(
@mishorpatra16703 жыл бұрын
Dislikes are from Neha Dhupia fans
@akshayverma45404 жыл бұрын
Hi Aditya, It would be very helpful if you could also include the time and space complexity in your video as this will definitely increase the quality of your content and will also be helpful for everyone.
@mercenary-coder10 ай бұрын
mostly recursive code complexity comes as exponential .
@shreyxnsh.146 ай бұрын
kahan placed ho bhai aajkal?
@radium990Ай бұрын
To solve the problem without using the character logic inside the recursion (i.e., without tracking each character individually), and by storing the subsets directly into a map while checking for duplicates at the base case, we can approach it in the following way: Approach: 1. Recursive Subset Generation: The recursive function generates all subsets of the string by exploring the options of including or excluding the current character. The base condition checks if the input string is empty, and if so, it adds the current subset to a Map. 2. Handling Duplicates: The key idea is to use a Map to store subsets. If a subset has already been generated (present in the map), we simply increment its counter. This avoids storing duplicates. 3. Lexicographical Order: Instead of sorting the string at the start, we will use the map to ensure subsets are stored only once. However, for output to be in lexicographical order, we can simply iterate over the map's keys in sorted order when printing the subsets. Java Code: import java.util.*; public class UniqueSubsetsWithMap { public static void main(String[] args) { String input = "aab"; // Example input string Map subsetMap = new HashMap(); // Map to store subsets and their counts // Start the recursion to generate subsets generateSubsets(input, "", subsetMap); // Sort the map keys to print subsets in lexicographical order List sortedSubsets = new ArrayList(subsetMap.keySet()); Collections.sort(sortedSubsets); // Print the subsets in lexicographical order for (String subset : sortedSubsets) { System.out.println(subset); } } // Recursive function to generate subsets private static void generateSubsets(String input, String currentSubset, Map subsetMap) { // Base case: if the input string is empty, add the current subset to the map if (input.isEmpty()) { subsetMap.put(currentSubset, subsetMap.getOrDefault(currentSubset, 0) + 1); return; } // Recursive case: Exclude the first character and recurse generateSubsets(input.substring(1), currentSubset, subsetMap); // Recursive case: Include the first character and recurse generateSubsets(input.substring(1), currentSubset + input.charAt(0), subsetMap); } } Explanation: 1. Recursion: The generateSubsets function is the recursive function that explores all subsets of the input string. It operates by either including or excluding the first character of the string in the current subset. 2. Base Case: The base case occurs when the input string is empty. At this point, the currentSubset (which holds the current combination of characters) is added to the map with its count. The map ensures that duplicate subsets are counted, but only one instance of each unique subset is stored. 3. Map for Uniqueness: We use a Map to store subsets and their counts. The key is the subset itself, and the value is the count of how many times this subset has been generated. This prevents duplicate subsets from being stored, as we increment the count of the existing subset in the map if it is generated again. 4. Printing in Lexicographical Order: After all subsets have been generated, we retrieve all the unique subsets from the map, sort them lexicographically using Collections.sort(), and then print them. Example Walkthrough for input "aab": Recursion unfolds like this: generateSubsets("aab", "", subsetMap) -> generateSubsets("ab", "", subsetMap) -> generateSubsets("b", "", subsetMap) -> generateSubsets("", "", subsetMap) // Base case: add "" to map -> generateSubsets("", "b", subsetMap) // Base case: add "b" to map -> generateSubsets("b", "a", subsetMap) -> generateSubsets("", "a", subsetMap) // Base case: add "a" to map -> generateSubsets("", "ab", subsetMap) // Base case: add "ab" to map -> generateSubsets("ab", "a", subsetMap) -> generateSubsets("b", "a", subsetMap) -> generateSubsets("", "a", subsetMap) // Base case: add "a" to map -> generateSubsets("", "ab", subsetMap) // Base case: add "ab" to map -> generateSubsets("b", "aa", subsetMap) -> generateSubsets("", "aa", subsetMap) // Base case: add "aa" to map -> generateSubsets("", "aab", subsetMap) // Base case: add "aab" to map Output for input "aab": "" "a" "aa" "aab" "ab" "b" Explanation of the Map: The map after recursion would contain the following entries: {"": 1, "a": 2, "aa": 1, "aab": 1, "ab": 1, "b": 1} After sorting the keys of the map, the subsets are printed in lexicographical order. Time Complexity: Recursion: The recursion explores all subsets, which results in 2^n possible subsets, where n is the length of the input string. Map Operations: Each subset insertion into the map takes O(1) time for each subset. Sorting: After generating all subsets, we sort the map's keys, which takes O(k log k) time, where k is the number of unique subsets (k
@DeepakKumar-e2s5qАй бұрын
thanks cutiee
@Vishal-ds6ly Жыл бұрын
you are great sir I love the way you teach earlier I used to memorize questions but I now I understand it.
@AmitSingh-cs2hb4 жыл бұрын
Instead of creating map and vector,then comparing that string is present in map or not, we can simply use Set which automatically removes duplicates and also sort the strings.
@anaszubair5824 жыл бұрын
But time complexity will increase as set takes o(logn) for insertion which map takes o(1) for insertion
@ashishchhikara78294 жыл бұрын
@@anaszubair582 but for checking vector is already present or not in map takes O(logn) and it requires extra space, hence set is better
@anaszubair5824 жыл бұрын
@@ashishchhikara7829 we will use unordered map which take o(1) for searching and yes It will take extra space but it is faster then set
@ashishchhikara78294 жыл бұрын
@@anaszubair582 sorry bro for misunderstanding.....i used to code in python, and it have dict data structure, so i thought in that way.......i know nothing about C++ or java........from python point of view ....i think set will be better
@anaszubair5824 жыл бұрын
@@ashishchhikara7829 even in python dict has complexity o(1) for insertion and searching
@srajikagupta36274 жыл бұрын
I can see people demanding for other topics in the comment section . But i am here to appreciate the efforts you are making selflessly .
@Colourshred3 жыл бұрын
IT'S HER CHOICE :') This content is like heaven for the brain! Godspeed.
@gauravraj26043 жыл бұрын
bhai ki hr video is lit... and wo 13:36 p knapsack wali problem yaad meko v aa gyi..
@Khabibullah4 жыл бұрын
Bro give timestamps if possible, BTW suuup explanation 👌👌
@0anant04 жыл бұрын
Great explanation! Another option to map and set is to simply sort the input and then skip all duplicates of an element
@TheAdityaVerma4 жыл бұрын
That would give incorrect answer eg: Dry run your approach for "aab" [HINT: Your approach would probably skip "aa", but that must be present]
@0anant04 жыл бұрын
@@TheAdityaVerma Oh yes! I was thinking of no duplicates in OUTput, not INput. My bad!
@bhaskarbhakat56894 жыл бұрын
sun meri baat its her choice
@vedantgolash60844 жыл бұрын
hahahahaha
@ru29793 жыл бұрын
@@vedantgolash6084 hue hue hue
@surbhitamrakar16384 жыл бұрын
The best explanation I ever found ... thanks a lott please make series on graph
@aravindhravi23074 жыл бұрын
meanwhile u can refer wiilliam fiset for graphs
@soniamalik49293 жыл бұрын
I am relaxed seriously for future technical interviews coz Aditya explain so well that each concept is mastered.
@dankyt92494 жыл бұрын
simple code just by using map for unique subset with comments:- #include using namespace std; void subset(string ip,string op,map &m) { if((int)ip.size()==0) { m[op]++; // only these two lines I added additionally checking whether string was present before or not. if(m[op]==1) // If not then print. Rest is full same code as before just declare map and pass by reference. cout
@sahilguleria55054 жыл бұрын
could use set/unordered_set
@geekylearner3596 Жыл бұрын
can u explain first line in if()
@shashikantverma606 ай бұрын
@@geekylearner3596 you can directly write ip.length() \
@Raj10185 Жыл бұрын
Solution for leetcode subsets 2 :- class Solution { public: set ans ; //global bana diya taki bar bar recursion me pass nhi karna pade void generate(vector ip,vector op) { if(ip.size()==0) { sort(op.begin(),op.end()); //odering of output bhi matter krta hai set ke liye nhi ans.insert(op); //abki baar set me insert kar rhe hai return; } // int pick ke jgh ab vector pick/notpick hoga vector notpick = op; vector pick = op ; pick.push_back(ip[0]); // ab push_back ip[0] mtlb 1 row wala pura aa jyega ip.erase(ip.begin()+0); // pop wahi begin se leke + 0 tak generate(ip,notpick); generate(ip,pick); } vector subsetsWithDup(vector& nums) { vector op; generate(nums,op); vector finalans; //return ko vector of vectror me karana hai to ... for(auto it : ans) //set se final ans me transfer { finalans.push_back(it); } return finalans; } };
@palakgurudev4867 Жыл бұрын
can u please explain why are we using sorting ..it wasnt mentioned in the question right??
@vikashkumarchaurasia12994 жыл бұрын
Bhai backtracking ka playlist placement session se pahle aajayega ?
@AbhishekChoudharyB Жыл бұрын
*Unique subsequences vs unique combinations/subsets* Suppose the original given string is abab Then the total subsequences will be void, a, b, a, b, ab, aa, ab, ba, bb, ab, aba, abb, aab, bab, abab Now the unique subsequences will be void, a, b, ab, aa, ba, bb, aba, abb, aab, bab, abab But the number of unique combinations (or unique subsets) will be less than unique subsequences The unique combinations here will be void, a, b, ab=ba, aa, bb, aba=aab, abb=bab, abab(=aabb) To find the unique combinations we can sort the string abab first to aabb Then the resulting unique subsequences will unique combinations void, a, b, aa, ab, bb, aab, abb, aabb
@snehilsinha46893 жыл бұрын
7:23 Don't know about right but I think I can easily left the code 😆. jk bhaiya. OP content 🔥🔥🔥
@shaikfahim12323 жыл бұрын
Bhayya 80k subscribers hogaye hain Please abseto graphs start kardijiye Lockdown me utna bhi mushkil nahi hoga
@aryankanwar8137Ай бұрын
Solve using a previous similar approach without using extra space 1. Add index instead of slicing input 2. Using sort (so duplicates come subsequent 1,2,2,3 and while to eliminate duplicate var subsetsWithDup = function(nums) { nums.sort((a, b) => a - b); let powerset = []; let n = nums.length; function solve(index, output = []){ if(index == nums.length){ powerset.push(output); return; } let output1 = output.slice(); let output2 = output.slice(); output2.push(nums[index]); solve(index+1, output2); //include in output // Skip all duplicate elements for exclude case // we took one 2 and here we want to exclude it, so we will exclude not just single 2 but all subsequent 2's while(index + 1 < nums.length && nums[index] === nums[index + 1]) { index++; } solve(index+1, output1); //exclude in output } solve(0); return powerset; };
@nikhilchhabra45642 жыл бұрын
BEST EXPLANATION EVER
@sagarkanojia4 жыл бұрын
Bhai isse bhadiya content aur kahin nahi mila aajtak
@NotNotNithin4 жыл бұрын
Java 8 solution for printing unique subsets: public class PrintUniqueSubsets { public static void main(String[] args) { Set uniqueSubset = new HashSet(); uniqueSubset = printUnique("aab", "", uniqueSubset); System.out.println("Unique subsets: "); uniqueSubset.forEach(System.out::println); } public static Set printUnique(String ipStr, String opStr, Set resMap) { if (ipStr.isEmpty()) { resMap.add(opStr); return new HashSet(); } String opStr2 = opStr; opStr2 += ipStr.charAt(0); ipStr = ipStr.substring(1); printUnique(ipStr, opStr, resMap); printUnique(ipStr, opStr2, resMap); return resMap; } }
@vinitdeshkar430611 ай бұрын
This wont work for input like "aaba". Your approach will still print duplicate subsets.
@sagardas45694 жыл бұрын
Sachme bhaiya maja agaya itna details me janne k baad 😇😘
@056_anmolkumarojha23 жыл бұрын
the content is heaven for people like me who struggled in recursion, but till now we were familiar with IBH method is there any type of corelation between this rec tree method and IBH one if anyone could tell it would be of great help to memorise it
@paritoshdadhich29543 жыл бұрын
Thanks a lot for such a great explanation and generalize all type of quesitons
@Raj10185 Жыл бұрын
solution for leetcode subsets :- class Solution { public: vector ans ; //global ans bana liya asseseble for all void generate(vector ip,vector op) { if(ip.size()==0) { ans.push_back(op); return; } // int pick ke jgh ab vector hoga vector notpick = op; vector pick = op ; pick.push_back(ip[0]); // ab push_back ip[0] mtlb 1 row wala pura aa jyega ip.erase(ip.begin()+0); // pop wahi begin se leke + 0 tak generate(ip,notpick); generate(ip,pick); } vector subsets(vector& nums) { vectorop; generate(nums,op); return ans; } };
@paragroy53593 жыл бұрын
Thanks for the playlist sir....your work is extremely good
@Fakipo3 жыл бұрын
We can also use set in the place of map as it will be more efficient. Around 18:30, you mentioned that in a subset order doesn't matter, while it is the other way around. Order matters, that's why "ac" is different from "ca". Also important point to mention, in case of substrings and subsequences, you need to remove some cases from the last level of the tree where input is empty string. and then build your induction around that.
In the first approach, instead of creating another vector and using map, I think we can just store all the elements in unordered_set which has amortized O(1) for insert and at the end we can just copy all the elements from our set to answer vector
@ashirbadbehera55444 жыл бұрын
22:42 set is a better option here.
@iam_mausam2 жыл бұрын
11:28 Nice Drawing : )
@utkarshsharma66503 жыл бұрын
bhai coding nahi karwayi apne lekin, concept kafi accha karwaya! maza aagya bhai ! crash course type ke liye acchi series h
@utkarshsharma66503 жыл бұрын
bhai aapne code nhi dia, ye bahut galat kia,. kam se kam code toh de dete... bharat achrya wali strategy laga di, adha content dedia baki ke liye fasa dia :-(
@puspaksahu33423 жыл бұрын
how to print all the subsets? how can we do the same as subsequece, as we know both are different?? there are 2^n subsequences possible while n(n+1)/2 substrings possible
@kumaarbalbir10233 жыл бұрын
thanks for info i was somehow confused about subsequence
@vasuagrawal29543 жыл бұрын
oo bhai its her choice 🔥🔥
@yashmittal90404 жыл бұрын
hi sir i think you missed saying that if the input string with duplicates is not in sorted order then it must be sorted first before finding the subsets
@pankajbisht8973 жыл бұрын
It will be tricky to solve it if the input is List and the output is
@prasannpatil33713 жыл бұрын
I understood that you formed new instances as lists are mutable and change in place unlike string. But how did you decide to form new instance here "var op1 = new List (output);" and not here " result.Add (output)". If yu could please explain this I would be greateful
@prasannpatil33713 жыл бұрын
@Pankaj Bisht
@shibanidas70183 жыл бұрын
Thanks!! helped a lot
@shaiknadeen Жыл бұрын
function withoutduplicates(idx, arr, ans, dummy) { ans.push(dummy.slice()); for (let i = idx; i < arr.length; i++) { if(i>idx&&arr[i]==arr[i-1]){ continue; } dummy.push(arr[i]); withoutduplicates(i+1, arr, ans, dummy); dummy.pop(); } } js code simple
@mohammad_59292 жыл бұрын
it's her choice 😂😂bhayya roaster
@ShubhamSingh-fl3qi4 жыл бұрын
Agar koi larki kre to it's her choice 😂😂nice one
@swagatochakraborty6043 Жыл бұрын
11:00 Substring vs Subsequence vs Subset
@PriyankaRawat-be4sq3 жыл бұрын
can we somehow do this problem without using extra data structure to filter out the unique? in recusrion itself if we can have some condition to not check for duplicates?
@anchalsharma084310 ай бұрын
yes , we can do that. Sort the array first and then dont recurse for an element if you had already done it ( sorting the input arr can help us to determine quickly if we had recursed for a similar element earlier or not )
@pranayreddyannam1882 жыл бұрын
Unique Subsets | Practice | GeeksforGeeks for this question, when we are erasing first element of input till it become zero, As we know erasing at first index will costs O(n) time, so is there any other way @Aditya Verma to reduce the time complexity, like in discussions I have seen some are doing without erasing the input
@rahuldwarijadavpuruniversi9322 Жыл бұрын
class Solution { public: vectorres; void solve(vectornums,vector&op){ if(nums.size() == 0){ res.push_back(op); return; } vectorop1 = op; vectorop2 = op; op2.push_back(nums[nums.size() - 1]); nums.pop_back(); solve(nums,op1); solve(nums,op2); } vector subsets(vector& nums) { vectorop; solve(nums,op); return res; } }; start from the last element and use pop_back() which will cost you O(1) time only
@sahinsarkar7293 Жыл бұрын
in 18:35, did you mean print "subsequence" in both cases, instead of "subset"?
@ArshadIqbal_IEC_25 күн бұрын
exactly looking for this comment
@abhinavrana2213 жыл бұрын
Simple C++ Code I have used Set #include using namespace std; string solve(string str,string op,set&st){ if(str.length()==0){ st.insert(op); return op; } string op1=op; string op2=op; op2.push_back(str[0]); str.erase(str.begin()+0); solve(str,op1,st); solve(str,op2,st); return op; } // c a ac a ac aa aac int main(){ string str; cin>>str; string op=" "; setst; solve(str,op,st); for (auto it = st.begin(); it !=st.end(); ++it) cout
@kumarmanish90463 жыл бұрын
How can we use subset solution for finding powerset, subset, subsequence? They would have different results right? Example if answer demands ab & ba both, then?
@kishanmishra98024 жыл бұрын
Great teacher
@srishtigugoriya93192 жыл бұрын
can anyone please share their java code which got accepted on GFG
@siddharthkeshri56493 жыл бұрын
17:15 Aditya bhaiya is Also a Neha Dupia Fan 😂😂
@dhananjaylohiya6421 Жыл бұрын
Baaki sbka thik hai , smjh gye ek taraf bhai ka "COOL" taraf
@animeshanand62864 жыл бұрын
waah waah. nice reference through memes. makes the concepts solid
@sagnik_203 жыл бұрын
unordered_set use karsakte hae na map k jagah
@spandanbasu_12282 жыл бұрын
🤣🤣🤣Its her Choice.. Neha Dhupia shoud be proud!!😆😆
@chiefolk2 жыл бұрын
we can use unordered_set instead of map and a vector and then create a iterator for unordered_set to print unique items
@@tejasjhamnani7724 this substring of subsets unique?
@samikshagupta783 жыл бұрын
The pdf notes are all paid na?? PLEASE HELP
@kuldeepnarayanminj4 жыл бұрын
laajawaab, kya padhate ho aditya sir
@aayushpagare93664 жыл бұрын
set wali method TLE de deti hai large inputs par :
@aniketbhoite71683 жыл бұрын
unordered_map
@thewanderingrooh3 жыл бұрын
instead of using a set/map to remove duplicates , we can sort the input string and skip same consecutive elements.
@SDE_FACT2 жыл бұрын
That would give incorrect answer eg: Dry run your approach for "aab" [HINT: Your approach would probably skip "aa", but that must be present]
@kashishsingh35614 жыл бұрын
GETTING TLE in GFG in this code: (for PRINT UNIQUE SUBSETS) void solve(vector ip, vector op, vector& v) { if(ip.size()==0) { v.push_back(op); return; } vector op1=op; vector op2=op; op2.push_back(ip[0]); ip.erase(ip.begin() + 0); solve(ip, op1, v); solve(ip, op2, v); return; } vector AllSubsets(vector A, int n) { // code here vector v; vector op={}; sort(A.begin(), A.end()); solve(A, op, v); set s; int size = v.size(); for(int i = 0; i < size; ++i ) s.insert(v[i]); v.assign( s.begin(), s.end() ); return v; }
@prakhar11442 жыл бұрын
Try this :) struct VectorHasher { size_t operator()(const vector& V) const { size_t hash = V.size(); for (auto i : V) hash ^= i + 0x9e3779b9 + (hash > 2); return hash; } }; class Solution { public: void solve(vector ip, vector op, unordered_set& ans) { if(ip.size()==0) { ans.insert(op); return; } vector op1 = op; vector op2 = op; op2.push_back(ip[0]); ip.erase(ip.begin()+0); solve(ip, op1, ans); solve(ip, op2, ans); } //Function to find all possible unique subsets. vector AllSubsets(vector arr, int n) { sort(arr.begin(), arr.end()); unordered_set ans; vector ans_vec; vector ip = arr; vector op; solve(ip, op, ans); for(auto x : ans) { ans_vec.push_back(x); } sort(ans_vec.begin(), ans_vec.end()); return ans_vec; } };
@chakravarty-with-a-v2 жыл бұрын
Try Passing the vectorop in solve() by reference i.e. void solve(vector ip, vector& op, vector& v)
@spiral5462 жыл бұрын
@@chakravarty-with-a-v How does by passing reference worked?
@chakravarty-with-a-v2 жыл бұрын
@@spiral546 passing by reference will not create a copy. Function will work on the original data. If you pass by value then copies will be generated. This will cause a problem for large inputs because copying is done repeatedly taking memory.
@yuvrajkakran1101 Жыл бұрын
void solve(vectorin,vectorop,set& ans){ if(in.size()==0){ sort(op.begin(),op.end()); ans.insert(op); return; } vectorop1=op,op2=op; op2.push_back(in[0]); in.erase(in.begin()+0); solve(in,op1,ans); solve(in,op2,ans); } //each mother fucking subset should be sorted vector AllSubsets(vector in, int n) { vectorans1; setans; vector op; solve(in,op,ans); ans1.assign( ans.begin(), ans.end() ); return ans1; }
@azizvohra31422 жыл бұрын
Guys can anyone update here with the latest code for this problem on leetcode using hashmap and the same procedure which Aditya did?
@prashantangrish78172 жыл бұрын
Hi Aditya , please make backtracking videos as well
@parvahuja76188 ай бұрын
thankyou sir so much
@mshreya94 жыл бұрын
Hi, please share the JAVA code for the problem. Thanks!
@2010aishwary4 жыл бұрын
import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Subsets { public static void main(String[] args) { solveSubsets("abc", ""); } static void solveSubsets(String input, String output){ List inputList = new ArrayList(); if(input.length() == 0){ inputList.add(output); System.out.println(inputList); return; } solveSubsets(input.substring(1), output); solveSubsets(input.substring(1), output+input.charAt(0)); return; } }
@DINESHKUMAR-gw1kz4 жыл бұрын
@@farazahmad9734 how to do this with Arraylist instead of string ?
@amanshaw84964 жыл бұрын
@@DINESHKUMAR-gw1kz wo sirf ldki ko btayega 😂
@Education_27534 жыл бұрын
@@amanshaw8496 epic reply bro 😂😂
@akhileshshahare2 жыл бұрын
const arr = [1,2,3] const solve = (ip, op, res) => { if(ip.length === 0){ res.push(op) return } let op1 = op, op2 = op op2.push(ip[0]) ip.shift() solve(ip, op1, res) solve(ip, op2, res) } let op = [], res = [] solve(arr, op, res) console.log(res) Why this approach for numbers is not working 😕?
@aayush54744 жыл бұрын
why not jut put the subset in a ordered set and print the set
@glean563 жыл бұрын
it'll be great if you can mention the links to the other videos you reference in a video, thanks
Adity bhai is string me 3 elements leke batado na keisa hoga ...just explain kardo ham code karlenge..... Ye 3 elements keliye Kruse tree banau samajh me nehi aa raha
@rafiqn26754 жыл бұрын
Thank you...
@vickyjha45098 ай бұрын
#include using namespace std; vector combi(string ); int main() { string input; cin>>input; vector ans=combi(input); for(auto x:ans) cout
@pratideep- Жыл бұрын
GFG solution. ---> set st; void solve(vector sub, vector arr, int idx) { if (idx >= arr.size()) { sort(sub.begin(), sub.end()); st.insert(sub); return; } solve(sub, arr, idx + 1); sub.push_back(arr[idx]); solve(sub, arr, idx + 1); } vector AllSubsets(vector arr, int n) { vector ans; vector sub; solve(sub, arr, 0); for (auto i : st) { ans.push_back(i); } return ans; }
@SILENT_4_M_6551 Жыл бұрын
could you tell me please , why u are sorting the sub?Brother
@drashtibhardwaj503 жыл бұрын
It's her choice 😂😂😂
@mahavirsingh57904 жыл бұрын
Bhaiya backtracking ki video bna do plz placement time aane wala hai
@Krishna-mz2uk Жыл бұрын
Java Version for this approach class Solution { List res; Set ans; void solve(ArrayList ip,ArrayList op) { if(ip.size()==0) { if(ans.contains(op)==false){ ans.add(op); res.add(op); } return; } ArrayList op1=(ArrayList)op.clone(); ArrayList op2=(ArrayList)op.clone(); ArrayList ip1=(ArrayList)ip.clone(); op2.add(ip.get(0)); ip1.remove(0); solve(ip1,op1); solve(ip1,op2); return; } public List subsetsWithDup(int[] nums) { Arrays.sort(nums); res=new ArrayList(); ans=new HashSet(); ArrayList ip=new ArrayList(); Arrays.stream(nums).forEach(ip::add); ArrayList op=new ArrayList(); solve(ip,op); return res; } }