From 3d398221622e34e5572b744544e93df6cd478c1a Mon Sep 17 00:00:00 2001 From: yuganshmahajan <66515516+yuganshmahajan@users.noreply.github.com> Date: Sat, 16 Jul 2022 14:54:34 +0530 Subject: [PATCH] Update Fraz_recursion_7_2.java code will not work as it will break on line 13 with runtime error. We are not sure to remove ith element always, as we are not always putting the letters into out array. So we will have to check size and remove last element here. Second, we need to initialise a new arrayList every time we are adding it into result, coz in java if we change the added list later, it will change in result too due to reference --- Recursion/lecture 7/Fraz_recursion_7_2.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Recursion/lecture 7/Fraz_recursion_7_2.java b/Recursion/lecture 7/Fraz_recursion_7_2.java index 00a937e..3ec5996 100644 --- a/Recursion/lecture 7/Fraz_recursion_7_2.java +++ b/Recursion/lecture 7/Fraz_recursion_7_2.java @@ -3,18 +3,18 @@ void helper(ArrayList v, int i, ArrayList subSet, ArrayList> ans) { if (i == v.size()) { - ans.add(subSet); + ans.add(new ArrayList(subSet)); return; } // include the ith element subSet.add(v.get(i)); helper(v, i + 1, subSet, ans); // not including the ith element - subSet.remove(i); + subSet.remove(subSet.size()-1); helper(v, i + 1, subSet, ans); } ArrayList> pwset(ArrayList v) { helper(v, 0, subSet, ans); return ans; -} \ No newline at end of file +}