From ce5e38afc97c67a8ef6b1038ea9bf2a31cc4bf68 Mon Sep 17 00:00:00 2001 From: Mahdi HP Date: Wed, 22 Apr 2026 13:25:00 -0700 Subject: [PATCH 1/3] do first question(triangel) --- .idea/vcs.xml | 2 +- src/main/java/MainExercises.java | 20 +++++++++++++++++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 94a25f7..35eb1dd 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/src/main/java/MainExercises.java b/src/main/java/MainExercises.java index 21581ea..856145f 100644 --- a/src/main/java/MainExercises.java +++ b/src/main/java/MainExercises.java @@ -20,8 +20,21 @@ public class MainExercises */ public char[][] generateTriangle(int n) { - // todo - return null; + char[][] triangle = new char[n][]; + + for(int i = 0 ; i < n ; i++){ + triangle[i] = new char[i+1]; + for(int j = 0 ; j < i+1 ; j++){ + if(i == 0 || j == 0 || i== j || i == n-1 ){ + triangle[i][j] = '*'; + } + else{ + triangle[i][j] = ' '; + } + } + } + + return triangle; } @@ -57,8 +70,9 @@ public class MainExercises - Number of rows: matrix.length - Number of columns: matrix[0].length (if rectangular) */ + public int[] spiralTraversal(int[][] matrix) { - // todo + return null; } -- 2.54.0 From 8fd66d9681108e1c46b8024a880fcd65e8a3f6da Mon Sep 17 00:00:00 2001 From: Mahdi HP Date: Thu, 23 Apr 2026 05:26:28 -0700 Subject: [PATCH 2/3] seconed question --- src/main/java/MainExercises.java | 50 ++++++++++++++++++++++++++++++-- 1 file changed, 48 insertions(+), 2 deletions(-) diff --git a/src/main/java/MainExercises.java b/src/main/java/MainExercises.java index 856145f..524c582 100644 --- a/src/main/java/MainExercises.java +++ b/src/main/java/MainExercises.java @@ -1,3 +1,5 @@ +import java.util.ArrayList; + public class MainExercises { /* @@ -71,11 +73,55 @@ public class MainExercises - Number of columns: matrix[0].length (if rectangular) */ - public int[] spiralTraversal(int[][] matrix) { - return null; + public int[] spiralTraversal(int[][] matrix) { + int rows = matrix.length; + int columns = matrix[0].length; + int[] result = new int[rows*columns]; + + int top = 0; + int down = rows-1; + int left = 0; + int right = columns-1; + int counter = 0; + + while(top <= down && left <= right){ + for (int i = left ; i <= right ; i++){ + result[counter] = matrix[top][i]; + counter++; + } + top++; + + for(int i = top ; i <= down ; i++){ + result[counter] = matrix[i][right]; + counter++; + } + right--; + + if (counter < rows*columns){ + for(int i = right ; i >= left ; i--){ + result[counter] = matrix[down][i]; + counter++; + } + down--; + + for(int i = down ; i >= top ; i--){ + result[counter]= matrix[i][left]; + counter++; + } + left++; + + + } + + } + + + + return result; } + /* integer partitioning is a combinatorics problem in discreet maths the problem is to generate sum numbers which their summation is the input number -- 2.54.0 From de2aab5e41f7d3bf087e30328527785bba53c825 Mon Sep 17 00:00:00 2001 From: Mahdi HP Date: Fri, 24 Apr 2026 00:27:19 -0700 Subject: [PATCH 3/3] 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() { -- 2.54.0