Main Exercise 2 completed.
This commit is contained in:
@@ -1,8 +1,12 @@
|
||||
import java.util.Arrays;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class MainExercises
|
||||
{
|
||||
public char[][] generateTriangle(int n) {
|
||||
char[][] Triangle = new char[n][];
|
||||
|
||||
//The for loop to put the stars a spaces in the array
|
||||
for(int i=0; i<n; i++) {
|
||||
Triangle[i] = new char[i+1];
|
||||
for (int j = 0; j <= i; j++) {
|
||||
@@ -47,10 +51,51 @@ public class MainExercises
|
||||
- Number of columns: matrix[0].length (if rectangular)
|
||||
*/
|
||||
public int[] spiralTraversal(int[][] matrix) {
|
||||
// todo
|
||||
return null;
|
||||
ArrayList<Integer> result = new ArrayList<>();
|
||||
|
||||
//Setting matrix edge indices
|
||||
int top = 0;
|
||||
int bottom = matrix.length - 1;
|
||||
int left = 0;
|
||||
int right = matrix[0].length - 1;
|
||||
|
||||
//This loop reads the indices in a spiral order and at each stage, it brings the edges closer to the center.
|
||||
while ((top <= bottom) && (left <= right)) {
|
||||
for (int i=left; i <= right; i++) {
|
||||
result.add(matrix[top][i]);
|
||||
}
|
||||
top++; //to getting closer to the center
|
||||
|
||||
for (int i=top; i <= bottom; i++) {
|
||||
result.add(matrix[i][right]);
|
||||
}
|
||||
right--; //to getting closer to the center
|
||||
|
||||
if (top <= bottom) {
|
||||
for (int i = right; i >= left; i--) {
|
||||
result.add(matrix[bottom][i]);
|
||||
}
|
||||
bottom--;
|
||||
}
|
||||
|
||||
if (left <= right) {
|
||||
for (int i = bottom; i >= top; i--) {
|
||||
result.add(matrix[i][left]);
|
||||
}
|
||||
left++;
|
||||
}
|
||||
}
|
||||
|
||||
int n = (matrix.length)*(matrix[0].length);
|
||||
int[] finalResult = new int[n]; //for returning an int[] array
|
||||
for (int i=0; i<n; i++) {
|
||||
finalResult[i] = result.get(i);
|
||||
}
|
||||
return finalResult;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
integer partitioning is a combinatorics problem in discreet maths
|
||||
the problem is to generate sum numbers which their summation is the input number
|
||||
|
||||
Reference in New Issue
Block a user