Tuesday, July 11, 2017

Print matrix in spiral order


public void matrixInSpiralOrder(int[][] squareMatrix) {
        spiralPrint(squareMatrix.length, squareMatrix[0].length,squareMatrix);
    }

    public void spiralPrint(int endRow, int endColumn, int[][] squareMatrix){
        int startRow = 0;
        int startColumn = 0;
        int i =0;
        while (startRow < endRow && startColumn < endColumn){
            for( i = startColumn ; i < endColumn ; i++){
                System.out.print(squareMatrix[startRow][i] +" ");
            }
            startRow++;
            for(i = startRow ; i < endRow ; i++){
                System.out.print(squareMatrix[i][endColumn-1] +" ");
            }
            endColumn--;
            if(startRow< endRow) {
                for (i = endColumn-1; i >= startColumn; i--) {
                    System.out.print(squareMatrix[endRow-1][i] +" ");
                }
                endRow--;
            }

            if(startColumn  < endColumn){
                for(i = endRow-1 ; i >= startRow; i--){
                    System.out.print(squareMatrix[i][startColumn]+" ");
                }
                startColumn++;
            }

        }
    }

No comments:

Post a Comment