From de2aab5e41f7d3bf087e30328527785bba53c825 Mon Sep 17 00:00:00 2001 From: Mahdi HP Date: Fri, 24 Apr 2026 00:27:19 -0700 Subject: [PATCH] do question 3 --- src/main/java/MainExercises.java | 61 ++++++++++++++++++++++++++++++-- 1 file changed, 59 insertions(+), 2 deletions(-) diff --git a/src/main/java/MainExercises.java b/src/main/java/MainExercises.java index 524c582..0798ac2 100644 --- a/src/main/java/MainExercises.java +++ b/src/main/java/MainExercises.java @@ -1,4 +1,5 @@ import java.util.ArrayList; +import java.util.List; public class MainExercises { @@ -150,11 +151,67 @@ public class MainExercises body to use them instead of arrays. */ + private static List> result; + private static List help; + + public int[][] intPartitions(int n) { - // todo - return null; + result = new ArrayList<>(); + help = new ArrayList<>(); + + findRecursive(n, n); + + int[][] answer = casting(result); + + return answer; } + private static void findRecursive(int target , int max){ + + if(target == 0){ + + result.add(new ArrayList<>(help)); + return; + } + + for(int i = Math.min(target , max) ; i >= 1 ; i--){ + help.add(i); + + + findRecursive(target -i , i); + + help.remove(help.size() -1); + + } + + } + + private int[][] casting(List> input){ + int n = input.size(); + + int[][] answer = new int[n][]; + + for(int i = 0 ; i < n ; i++){ + int k = input.get(i).size(); + answer[i] = new int[k]; + + for(int j = 0 ; j < k ; j++){ + answer[i][j] = input.get(i).get(j); + } + + + } + + return answer; + + + + } + + + + + public static void main() {