Print unique subsets And Variations

Sdílet
Vložit
  • čas přidán 30. 06. 2020
  • Link: / adityaverma
    Video Pdf Notes And Code: / 38828164
    Problem Description: practice.geeksforgeeks.org/pr...
    Given an array of integers that might contain duplicates, return all possible subsets.
    Note:
    Elements in a subset must be in non-descending order.
    The solution set must not contain duplicate subsets.
    The subsets must be sorted lexicographically. .
    ------------------------------------------------------------------------------------------
    Here are some of the gears that I use almost everyday:
    🖊️ : My Pen (Used in videos too): amzn.to/38fKSM1
    👨🏻‍💻 : My Apple Macbook pro: amzn.to/3w8iZh6
    💻 : My gaming laptop: amzn.to/3yjcn23
    📱 : My Ipad: amzn.to/39yEMGS
    ✏️ : My Apple Pencil: amzn.to/3kMnKYf
    🎧 : My Headphones: amzn.to/3kMOzM7
    💺 : My Chair: amzn.to/385weqR
    🛋 : My Table: amzn.to/3kMohtd
    ⏰ : My Clock: amzn.to/3slFUV3
    🙋🏻‍♀️ : My girlfriend: amzn.to/3M6zLDK ¯\_(ツ)_/¯
    PS: While having good gears help you perform efficiently, don’t get under the impression that they will make you successful without any hard work.

Komentáře • 240

  • @piyushji2312
    @piyushji2312 Před 4 lety +79

    Bhai fit-jee ke baad ab jaakar aisa teacher mila hai. :' )

  • @carry4398
    @carry4398 Před 4 lety +92

    Itna detailed analysis kahi aur nhi milega.. guarantee

  • @tarunbawari2858
    @tarunbawari2858 Před 4 lety +26

    Bhai apne recursion ko bahut easy kar diya he me bahut kam use karta tha recursion but now i am comfortable with recursion 😅

  • @akshayverma4540
    @akshayverma4540 Před 4 lety +86

    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.

  • @ashaykoradia2475
    @ashaykoradia2475 Před 2 lety +24

    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!🙌

  • @bhaskarbhakat5689
    @bhaskarbhakat5689 Před 4 lety +113

    sun meri baat its her choice

  • @simranbansal5644
    @simranbansal5644 Před 2 lety +2

    I have never finished any youtubers playlist till now, but completed this one, the things look so easy. Thank You.

  • @eshitakalsi7682
    @eshitakalsi7682 Před 4 lety +15

    How can someone dislike a video as good as this? :(

  • @AmitSingh-cs2hb
    @AmitSingh-cs2hb Před 4 lety +141

    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.

    • @anaszubair582
      @anaszubair582 Před 3 lety +23

      But time complexity will increase as set takes o(logn) for insertion which map takes o(1) for insertion

    • @ashishchhikara7829
      @ashishchhikara7829 Před 3 lety +7

      @@anaszubair582 but for checking vector is already present or not in map takes O(logn) and it requires extra space, hence set is better

    • @anaszubair582
      @anaszubair582 Před 3 lety +5

      @@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

    • @ashishchhikara7829
      @ashishchhikara7829 Před 3 lety +1

      @@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

    • @anaszubair582
      @anaszubair582 Před 3 lety +1

      @@ashishchhikara7829 even in python dict has complexity o(1) for insertion and searching

  • @soniamalik4929
    @soniamalik4929 Před 3 lety

    I am relaxed seriously for future technical interviews coz Aditya explain so well that each concept is mastered.

  • @Vishal-ds6ly
    @Vishal-ds6ly Před rokem +1

    you are great sir I love the way you teach earlier I used to memorize questions but I now I understand it.

  • @srajikagupta3627
    @srajikagupta3627 Před 3 lety +8

    I can see people demanding for other topics in the comment section .
    But i am here to appreciate the efforts you are making selflessly .

  • @paritoshdadhich2954
    @paritoshdadhich2954 Před 3 lety

    Thanks a lot for such a great explanation and generalize all type of quesitons

  • @paragroy5359
    @paragroy5359 Před 3 lety

    Thanks for the playlist sir....your work is extremely good

  • @vikashkumarchaurasia1299
    @vikashkumarchaurasia1299 Před 4 lety +73

    Bhai backtracking ka playlist placement session se pahle aajayega ?

  • @dankyt9249
    @dankyt9249 Před 4 lety +32

    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

  • @sagardas4569
    @sagardas4569 Před 4 lety

    Sachme bhaiya maja agaya itna details me janne k baad 😇😘

  • @gauravraj2604
    @gauravraj2604 Před 2 lety

    bhai ki hr video is lit... and wo 13:36 p knapsack wali problem yaad meko v aa gyi..

  • @sagardhandhalya2067
    @sagardhandhalya2067 Před 3 lety

    You are wonderful teacher 👏👏

  • @surbhitamrakar1638
    @surbhitamrakar1638 Před 3 lety +3

    The best explanation I ever found ... thanks a lott please make series on graph

  • @shaikfahim1232
    @shaikfahim1232 Před 3 lety +4

    Bhayya 80k subscribers hogaye hain
    Please abseto graphs start kardijiye
    Lockdown me utna bhi mushkil nahi hoga

  • @sagarkanojia
    @sagarkanojia Před 3 lety

    Bhai isse bhadiya content aur kahin nahi mila aajtak

  • @Khabibullah
    @Khabibullah Před 4 lety +10

    Bro give timestamps if possible, BTW suuup explanation 👌👌

  • @056_anmolkumarojha2
    @056_anmolkumarojha2 Před 2 lety +5

    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

  • @kishanmishra9802
    @kishanmishra9802 Před 3 lety

    Great teacher

  • @AbhishekChoudharyB
    @AbhishekChoudharyB Před rokem +3

    *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

  • @NotNotNithin
    @NotNotNithin Před 3 lety +7

    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;
    }
    }

    • @vinitdeshkar4306
      @vinitdeshkar4306 Před 5 měsíci

      This wont work for input like "aaba". Your approach will still print duplicate subsets.

  • @nitindas208
    @nitindas208 Před 3 lety

    problem link : practice.geeksforgeeks.org/problems/subsets/0

  • @nikhilchhabra4564
    @nikhilchhabra4564 Před 2 lety +1

    BEST EXPLANATION EVER

  • @Colourshred
    @Colourshred Před 2 lety +6

    IT'S HER CHOICE :')
    This content is like heaven for the brain! Godspeed.

  • @0anant0
    @0anant0 Před 3 lety +10

    Great explanation! Another option to map and set is to simply sort the input and then skip all duplicates of an element

    • @TheAdityaVerma
      @TheAdityaVerma  Před 3 lety +11

      That would give incorrect answer eg: Dry run your approach for "aab" [HINT: Your approach would probably skip "aa", but that must be present]

    • @0anant0
      @0anant0 Před 3 lety +3

      @@TheAdityaVerma Oh yes! I was thinking of no duplicates in OUTput, not INput. My bad!

  • @_ApoorvaShinde
    @_ApoorvaShinde Před 3 lety

    best video ever!!

  • @kumaarbalbir1023
    @kumaarbalbir1023 Před 2 lety +1

    thanks for info i was somehow confused about subsequence

  • @vasuagrawal2954
    @vasuagrawal2954 Před 3 lety +1

    oo bhai
    its her choice 🔥🔥

  • @yashmittal9040
    @yashmittal9040 Před 3 lety +2

    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

  • @snehilsinha4689
    @snehilsinha4689 Před 3 lety +1

    7:23 Don't know about right but I think I can easily left the code 😆.
    jk bhaiya. OP content 🔥🔥🔥

  • @deyp11
    @deyp11 Před 4 lety

    thanks a lot

  • @rafiqn2675
    @rafiqn2675 Před 4 lety

    Thank you...

  • @Raj10185
    @Raj10185 Před rokem +2

    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;








    }
    };

  • @dhikshithrm
    @dhikshithrm Před 2 lety

    we can use unordered_set instead of map and a vector and then create a iterator for unordered_set to print unique items

  • @ShivamKumar-cv7jv
    @ShivamKumar-cv7jv Před 3 lety +1

    so much addictive videoes...........

  • @kumarmanish9046
    @kumarmanish9046 Před 2 lety

    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?

  • @parvahuja7618
    @parvahuja7618 Před 2 měsíci

    thankyou sir so much

  • @kuldeepnarayanminj
    @kuldeepnarayanminj Před 4 lety

    laajawaab, kya padhate ho aditya sir

  • @puspaksahu3342
    @puspaksahu3342 Před 3 lety +1

    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

  • @Raj10185
    @Raj10185 Před rokem +1

    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
      @palakgurudev4867 Před rokem

      can u please explain why are we using sorting ..it wasnt mentioned in the question right??

  • @ashirbadbehera5544
    @ashirbadbehera5544 Před 3 lety +3

    22:42 set is a better option here.

  • @chetanraghavv
    @chetanraghavv Před 3 měsíci

    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

  • @utkarshsharma6650
    @utkarshsharma6650 Před 3 lety

    bhai coding nahi karwayi apne lekin, concept kafi accha karwaya! maza aagya bhai ! crash course type ke liye acchi series h

    • @utkarshsharma6650
      @utkarshsharma6650 Před 3 lety

      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 :-(

  • @animeshanand6286
    @animeshanand6286 Před 3 lety +1

    waah waah. nice reference through memes. makes the concepts solid

  • @glean56
    @glean56 Před 2 lety

    it'll be great if you can mention the links to the other videos you reference in a video, thanks

  • @mohammad_5929
    @mohammad_5929 Před rokem +1

    it's her choice 😂😂bhayya roaster

  • @pankajbisht897
    @pankajbisht897 Před 3 lety +5

    It will be tricky to solve it if the input is List and the output is

    • @prasannpatil3371
      @prasannpatil3371 Před 3 lety

      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

    • @prasannpatil3371
      @prasannpatil3371 Před 3 lety

      @Pankaj Bisht

    • @shibanidas7018
      @shibanidas7018 Před 3 lety

      Thanks!! helped a lot

  • @Fakipo
    @Fakipo Před 3 lety +1

    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.

  • @ritwikgoyal1659
    @ritwikgoyal1659 Před 3 lety

    Any tips how to solve questions , i feel like i am not making any progress

  • @Prateek_Mantry
    @Prateek_Mantry Před 3 měsíci

    thank you.

  • @sagnik_20
    @sagnik_20 Před 2 lety

    unordered_set use karsakte hae na map k jagah

  • @iam_mausam
    @iam_mausam Před rokem +1

    11:28 Nice Drawing : )

  • @ShubhamSingh-fl3qi
    @ShubhamSingh-fl3qi Před 4 lety +3

    Agar koi larki kre to it's her choice 😂😂nice one

  • @Neerajkumar-xl9kx
    @Neerajkumar-xl9kx Před 3 lety

    what is mean by in place string ??

  • @pranayreddyannam188
    @pranayreddyannam188 Před 2 lety +2

    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
      @rahuldwarijadavpuruniversi9322 Před rokem +1

      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

  • @PriyankaRawat-be4sq
    @PriyankaRawat-be4sq Před 2 lety +1

    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?

    • @anchalsharma0843
      @anchalsharma0843 Před 4 měsíci

      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 )

  • @ROHITKADYANJI
    @ROHITKADYANJI Před 3 lety +1

    Bhai ek interaction video rakh lo

  • @srishtigugoriya9319
    @srishtigugoriya9319 Před 2 lety +1

    can anyone please share their java code which got accepted on GFG

  • @dhananjaylohiya6421
    @dhananjaylohiya6421 Před rokem

    Baaki sbka thik hai , smjh gye ek taraf bhai ka "COOL" taraf

  • @sahinsarkar7293
    @sahinsarkar7293 Před 7 měsíci

    in 18:35, did you mean print "subsequence" in both cases, instead of "subset"?

  • @samikshagupta78
    @samikshagupta78 Před 3 lety

    The pdf notes are all paid na?? PLEASE HELP

  • @azizvohra3142
    @azizvohra3142 Před 2 lety +1

    Guys can anyone update here with the latest code for this problem on leetcode using hashmap and the same procedure which Aditya did?

  • @prashantangrish7817
    @prashantangrish7817 Před rokem +1

    Hi Aditya , please make backtracking videos as well

  • @accepted5856
    @accepted5856 Před 4 lety

    But our only choice for learning is Aditya verma

  • @siddharthkeshri5649
    @siddharthkeshri5649 Před 2 lety

    17:15 Aditya bhaiya is Also a Neha Dupia Fan 😂😂

  • @nishantgupta6902
    @nishantgupta6902 Před 11 měsíci +2

    code:
    public:
    set s;
    void solve(vector ip, vector op){
    if(ip.size() ==0){
    s.insert(op);
    return;
    }
    vector op1 = op;
    vector op2 = op;
    op2.push_back(ip[0]);
    ip.erase(ip.begin() + 0);
    solve(ip,op1);
    solve(ip,op2);
    return;
    }
    //Function to find all possible unique subsets.
    vector AllSubsets(vector arr, int n)
    {
    // code here
    sort(arr.begin(), arr.end());
    vector op;
    vector ans;
    solve(arr, op);
    for(auto i: s){
    ans.push_back(i);
    }
    return ans;
    }

  • @shaiknadeen
    @shaiknadeen Před rokem +1

    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

  • @swagatochakraborty6043
    @swagatochakraborty6043 Před 8 měsíci

    11:00 Substring vs Subsequence vs Subset

  • @mahavirsingh5790
    @mahavirsingh5790 Před 3 lety +1

    Bhaiya backtracking ki video bna do plz placement time aane wala hai

  • @jivanninawe3190
    @jivanninawe3190 Před 2 lety

    Kohi code send kar sakta hai ky muje unique subset string ka?

  • @siddhartharauta7483
    @siddhartharauta7483 Před 3 lety

    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

  • @AnkitKumar-ft5yu
    @AnkitKumar-ft5yu Před 4 lety

    Damnnn bro

  • @thewanderingrooh
    @thewanderingrooh Před 2 lety +3

    instead of using a set/map to remove duplicates , we can sort the input string and skip same consecutive elements.

    • @SDE_FACT
      @SDE_FACT Před 2 lety

      That would give incorrect answer eg: Dry run your approach for "aab" [HINT: Your approach would probably skip "aa", but that must be present]

  • @sparsharora6516
    @sparsharora6516 Před 3 lety

    neha dhupia ko recursion aata hai?

  • @chiraggandhi8115
    @chiraggandhi8115 Před 3 lety +1

    Will the above map thing work for test case : 4,1,4,4,4

    • @JatinKapoor7
      @JatinKapoor7 Před 3 lety

      nope will not work for above

    • @JatinKapoor7
      @JatinKapoor7 Před 3 lety +1

      sort input string before sending to solve will fix it :) sort( nums.begin(), nums.end());

  • @shubhammahindru3563
    @shubhammahindru3563 Před 11 měsíci

    Its her choice 😁😁

  • @aayush5474
    @aayush5474 Před 3 lety

    why not jut put the subset in a ordered set and print the set

  • @spandanbasu_1228
    @spandanbasu_1228 Před rokem

    🤣🤣🤣Its her Choice.. Neha Dhupia shoud be proud!!😆😆

  • @aayushpagare9366
    @aayushpagare9366 Před 3 lety +1

    set wali method TLE de deti hai large inputs par :

  • @aneesmd7837
    @aneesmd7837 Před 2 lety

    This approach is giving TLE in gfg

    • @prakhar1144
      @prakhar1144 Před 2 lety +1

      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;
      }
      };

  • @akhileshshahare
    @akhileshshahare Před 2 lety

    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 😕?

  • @abhinavrana221
    @abhinavrana221 Před 2 lety +7

    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

  • @priyankarai7005
    @priyankarai7005 Před 3 lety +1

    program to print all substrings recursively. Please help me with it.

    • @tejasjhamnani7724
      @tejasjhamnani7724 Před 3 lety

      // Program to print all substrings Recursively
      #include
      #include
      #include
      using namespace std;
      void solve(string output, string input, set &arr, int selected)
      {
      if (input.length() == 0)
      {
      arr.insert(output);
      return;
      }
      string op1 = output;
      string op2 = output;
      op1.push_back(input[0]);
      input.erase(input.begin());
      if (selected == 1)
      {
      solve(op1, input, arr, 1);
      }
      solve(op2, input, arr, 0);
      }
      int main()
      {
      set arr;
      int selected = 1;
      string input = "", output = "abcdefg"; //Initial Input and output Respectively
      solve(input, output, arr, selected);
      set::iterator itr;
      for (itr = arr.begin(); itr != arr.end(); itr++)
      {
      cout

    • @anshumansharma4580
      @anshumansharma4580 Před 3 lety

      void sub(string ip, string op, bool path, int prev){
      if(ip.size()==0){
      cout

    • @jivanninawe3190
      @jivanninawe3190 Před 2 lety

      @@tejasjhamnani7724 this substring of subsets unique?

  • @amruthachowdary5697
    @amruthachowdary5697 Před 4 lety +6

    Any pls share the c++ code of this problem

    • @nitingupta1417
      @nitingupta1417 Před 4 lety +7

      #include
      using namespace std;
      void subset(string str,string output,vector &v)
      {
      if(str.length()==0)
      {
      v.push_back(output);
      return;
      }
      string op1=output;
      string op2=output+str[0];
      str.erase(str.begin());
      subset(str,op1,v);
      subset(str,op2,v);
      }
      int main()
      {
      string str,output=" ";
      cin>>str;
      vector v;
      subset(str,output,v);
      vector unique;
      map m;
      for(int i=0;i

    • @abhisheksuryavanshi9675
      @abhisheksuryavanshi9675 Před 4 lety +2

      Thanks @@@nitingupta1417

    • @abhayrai1724
      @abhayrai1724 Před 3 lety +1

      @@nitingupta1417 so nice of you :-)

    • @nitingupta1417
      @nitingupta1417 Před 3 lety

      @@abhisheksuryavanshi9675 welcome 😇

    • @nitingupta1417
      @nitingupta1417 Před 3 lety

      @@abhayrai1724 welcome bro 😇😇

  • @ytg6663
    @ytg6663 Před 2 lety

    17:15 Neha Dhupiya Meme 👍😁😁

  • @yatendraupadhyay2180
    @yatendraupadhyay2180 Před 3 měsíci

    Bhaiya ye to sirf subsequence hua na .
    What about all subsets.

  • @mshreya9
    @mshreya9 Před 4 lety +2

    Hi, please share the JAVA code for the problem.
    Thanks!

    • @2010aishwary
      @2010aishwary Před 4 lety +1

      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-gw1kz
      @DINESHKUMAR-gw1kz Před 4 lety

      @@farazahmad9734 how to do this with Arraylist instead of string ?

    • @amanshaw8496
      @amanshaw8496 Před 3 lety +5

      @@DINESHKUMAR-gw1kz wo sirf ldki ko btayega 😂

    • @Education_2753
      @Education_2753 Před 3 lety +1

      @@amanshaw8496 epic reply bro 😂😂

  • @drashtibhardwaj50
    @drashtibhardwaj50 Před 2 lety +1

    It's her choice 😂😂😂

  • @alina8023
    @alina8023 Před 3 lety

    its her choice😂😂

  • @rakshitsrivastava4930
    @rakshitsrivastava4930 Před 2 lety +1

    Lexi... 😂😂😂

  • @ravibhaskar4022
    @ravibhaskar4022 Před 3 lety +2

    Neha dhupia disliked this video with 7 others !! coz its her choice

  • @kashishsingh3561
    @kashishsingh3561 Před 3 lety +3

    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;
    }

    • @prakhar1144
      @prakhar1144 Před 2 lety

      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-v
      @chakravarty-with-a-v Před 2 lety +2

      Try Passing the vectorop in solve() by reference i.e.
      void solve(vector ip, vector& op, vector& v)

    • @spiral546
      @spiral546 Před rokem

      @@chakravarty-with-a-v How does by passing reference worked?

    • @chakravarty-with-a-v
      @chakravarty-with-a-v Před rokem +1

      @@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
      @yuvrajkakran1101 Před rokem

      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;
      }

  • @Krishna-mz2uk
    @Krishna-mz2uk Před rokem

    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;
    }
    }