Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
de2aab5e41 | ||
|
|
8fd66d9681 | ||
|
|
ce5e38afc9 |
Generated
+1
-1
@@ -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>
|
||||||
@@ -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,10 +73,55 @@ 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
|
||||||
@@ -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()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user