Pages

Tuesday, October 2, 2012

Spiral Matrix Problem

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] + " ");
}
}
}
}

No comments:

Post a Comment