3 Commits
Author SHA1 Message Date
mahdi_Goudarzi de2aab5e41 do question 3 2026-04-24 00:27:19 -07:00
mahdi_Goudarzi 8fd66d9681 seconed question 2026-04-23 05:26:28 -07:00
mahdi_Goudarzi ce5e38afc9 do first question(triangel) 2026-04-22 13:25:00 -07:00
2 changed files with 124 additions and 7 deletions
Generated
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="VcsDirectoryMappings"> <component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" /> <mapping directory="" vcs="Git" />
</component> </component>
</project> </project>
+123 -6
View File
@@ -1,3 +1,6 @@
import java.util.ArrayList;
import java.util.List;
public class MainExercises public class MainExercises
{ {
/* /*
@@ -20,8 +23,21 @@ public class MainExercises
*/ */
public char[][] generateTriangle(int n) { public char[][] generateTriangle(int n) {
// todo char[][] triangle = new char[n][];
return null;
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,11 +73,56 @@ public class MainExercises
- Number of rows: matrix.length - Number of rows: matrix.length
- Number of columns: matrix[0].length (if rectangular) - Number of columns: matrix[0].length (if rectangular)
*/ */
public int[] spiralTraversal(int[][] matrix) { public int[] spiralTraversal(int[][] matrix) {
// todo int rows = matrix.length;
return null; 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 integer partitioning is a combinatorics problem in discreet maths
the problem is to generate sum numbers which their summation is the input number the problem is to generate sum numbers which their summation is the input number
@@ -90,11 +151,67 @@ public class MainExercises
body to use them instead of arrays. body to use them instead of arrays.
*/ */
private static List<List<Integer>> result;
private static List<Integer> help;
public int[][] intPartitions(int n) { public int[][] intPartitions(int n) {
// todo result = new ArrayList<>();
return null; 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<List<Integer>> 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() public static void main()
{ {