From 594de6aeb650e74b3ad60be576ff8bae4462317a Mon Sep 17 00:00:00 2001 From: HadiSharifi Date: Thu, 23 Apr 2026 01:48:40 +0330 Subject: [PATCH] implement intPartitions function in MainExercises --- src/main/java/MainExercises.java | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/src/main/java/MainExercises.java b/src/main/java/MainExercises.java index 1826014..ea9aeb9 100644 --- a/src/main/java/MainExercises.java +++ b/src/main/java/MainExercises.java @@ -1,3 +1,6 @@ +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; public class MainExercises { @@ -44,8 +47,29 @@ public class MainExercises public int[][] intPartitions(int n) { - // todo - return null; + List result = new ArrayList<>(); + int[] partition = new int[n]; + int length = 0; + partition[length] = n; + while (true) { + result.add(Arrays.copyOf(partition, length+1)); + int rem = 0; + while (length >= 0 && partition[length] == 1){ + rem += partition[length]; + length--; + } + if ( length < 0 ) break; + partition[length]--; + rem++; + while (rem > partition[length]) { + partition[length+1] = partition[length]; + rem -= partition[length]; + length++; + } + partition[length+1] = rem; + length++; + } + return result.toArray(new int[0][]); }