zoukankan      html  css  js  c++  java
  • 剑指Offer19

    package javaOffer;

    import java.util.ArrayList;

    //顺时针打印矩阵
    // 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,
    // 例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
    // 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.
    public class o19_printMatrix_19 {
    public ArrayList<Integer> printMatrix(int[][] matrix) {
    ArrayList<Integer> result = new ArrayList<Integer>() ;
    if(matrix==null || matrix.length==0) { return result ; }

    printMatrixClockWisely(matrix, 0, 0, matrix.length - 1, matrix[0].length - 1, result);

    return result ;
    }

    public void printMatrixClockWisely(int[][] matrix, int startRow, int startCol, int endRow, int endCol, ArrayList<Integer> result) {
    if(startRow<endRow && startCol<endCol) {
    for(int j=startCol; j<=endCol; j++) { result.add(matrix[startRow][j]) ; } //Right
    for(int i=startRow+1; i<=endRow-1; i++) { result.add(matrix[i][endCol]) ; } //Down
    for(int j=endCol; j>=startCol; j--) { result.add(matrix[endRow][j]) ; } //Left
    for(int i=endRow-1; i>=startRow+1; i--) { result.add(matrix[i][startCol]) ; } //Up
    printMatrixClockWisely(matrix, startRow + 1, startCol + 1, endRow - 1, endCol - 1, result) ;
    }else if(startRow==endRow && startCol<endCol) {
    for(int j=startCol; j<=endCol; j++) { result.add(matrix[startRow][j]) ; }
    }else if(startRow<endRow && startCol==endCol) {
    for(int i=startRow; i<=endRow; i++) { result.add(matrix[i][endCol]) ; }
    }else if(startRow==endRow && startCol==endCol) {
    result.add(matrix[startRow][startCol]) ;
    }else {
    return ;
    }
    }
    }
  • 相关阅读:
    LintCode "Maximum Gap"
    LintCode "Wood Cut"
    LintCode "Expression Evaluation"
    LintCode "Find Peak Element II"
    LintCode "Remove Node in Binary Search Tree"
    LintCode "Delete Digits"
    LintCode "Binary Representation"
    LeetCode "Game of Life"
    LintCode "Coins in a Line"
    LintCode "Word Break"
  • 原文地址:https://www.cnblogs.com/fanzihao/p/11144593.html
Copyright © 2011-2022 走看看