Problem Definition: Display/Construct n*n matrix in Spiral Form for eg: 3*3 matrix
Input Output
1 2 3 1 2 3
4 5 6 8 9 4
7 8 9 7 6 5
Solution:
public class SprialMatrixProblem {
static int input = 4;
static int[][] matrix = new int[input][input];
static int counter = 1;
public static void main(String args[]){
SprialMatrixProblem.moveRightDown(0, -1, input);
SprialMatrixProblem.displayMatrix();
}
public static void moveRightDown(int iStart, int jStart, int matrixSize){
if(matrixSize > 0){
for(int j=0;j<matrixSize;j++){
jStart++;
matrix[iStart][jStart] = counter;
counter++;
}
matrixSize--;
for(int i=0;i<matrixSize;i++){
iStart++;
matrix[iStart][jStart] = counter;
counter++;
}
SprialMatrixProblem.moveLeftUp(iStart, jStart, matrixSize);
}
}
public static void moveLeftUp(int iStart, int jStart, int matrixSize){
if(matrixSize > 0){
for(int j=0;j<matrixSize;j++){
jStart--;
matrix[iStart][jStart] = counter;
counter++;
}
matrixSize--;
for(int i=0;i<matrixSize;i++){
iStart--;
matrix[iStart][jStart] = counter;
counter++;
}
SprialMatrixProblem.moveRightDown(iStart, jStart, matrixSize);
}
}
public static void displayMatrix(){
for(int i=0;i<input;i++){
for(int j=0;j<input;j++){
System.out.println(matrix[i][j] + " ");
}
}
}
}
Input Output
1 2 3 1 2 3
4 5 6 8 9 4
7 8 9 7 6 5
Solution:
public class SprialMatrixProblem {
static int input = 4;
static int[][] matrix = new int[input][input];
static int counter = 1;
public static void main(String args[]){
SprialMatrixProblem.moveRightDown(0, -1, input);
SprialMatrixProblem.displayMatrix();
}
public static void moveRightDown(int iStart, int jStart, int matrixSize){
if(matrixSize > 0){
for(int j=0;j<matrixSize;j++){
jStart++;
matrix[iStart][jStart] = counter;
counter++;
}
matrixSize--;
for(int i=0;i<matrixSize;i++){
iStart++;
matrix[iStart][jStart] = counter;
counter++;
}
SprialMatrixProblem.moveLeftUp(iStart, jStart, matrixSize);
}
}
public static void moveLeftUp(int iStart, int jStart, int matrixSize){
if(matrixSize > 0){
for(int j=0;j<matrixSize;j++){
jStart--;
matrix[iStart][jStart] = counter;
counter++;
}
matrixSize--;
for(int i=0;i<matrixSize;i++){
iStart--;
matrix[iStart][jStart] = counter;
counter++;
}
SprialMatrixProblem.moveRightDown(iStart, jStart, matrixSize);
}
}
public static void displayMatrix(){
for(int i=0;i<input;i++){
for(int j=0;j<input;j++){
System.out.println(matrix[i][j] + " ");
}
}
}
}

No comments:
Post a Comment