剑指offer 顺时针打印矩阵
生活随笔
收集整理的這篇文章主要介紹了
剑指offer 顺时针打印矩阵
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目描述
輸入一個矩陣,按照從外向里以順時針的順序依次打印出每一個數(shù)字,例如,如果輸入如下矩陣: 1 2 3 4 5 6 7 8 9 10 11 1213 14 15 16 則依次打印出數(shù)字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.本題繼續(xù)用遞歸的思想:
import java.util.*; public class Solution {ArrayList<Integer> list = new ArrayList<Integer>();public ArrayList<Integer> printMatrix(int [][] matrix) {int rows = matrix.length;int columns = matrix[0].length;int start = 0;while (rows > start * 2 && columns > start * 2) {printMatrixInCircle(matrix, rows, columns, start);start++;}return list;}/*** 功能:打印一圈*/public void printMatrixInCircle(int [][] matrix, int rows, int columns, int start){// 從左到右打印一行for(int i = start; i < columns - start; i++)list.add(matrix[start][i]);// 從上到下打印一列for(int j = start + 1; j < rows - start; j++)list.add(matrix[j][columns - start - 1]);// 從右到左打印一行for(int m = columns - start - 2; m >= start && rows - start - 1 > start; m--)list.add(matrix[rows - start - 1][m]);// 從下到上打印一列for(int n = rows - start - 2; n >= start + 1 && columns - start - 1 > start; n--)list.add(matrix[n][start]);} }總結(jié)
以上是生活随笔為你收集整理的剑指offer 顺时针打印矩阵的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 剑指offer 二叉树的镜像
- 下一篇: XGboost 实战糖尿病预测