每天一个算法之顺时针打印矩阵
2016-10-31 10:47
363 查看
public class printMatrix { public static void main(String args[]){ int[][] matrix={{1,2,3,4},{12,13,14,5},{11,16,15,6},{10,9,8,7}}; int[][] matrix2={{1,2,3,4}}; int[][] matrix3={{1},{2},{3},{4}}; printMatrix(matrix2, matrix2.length, matrix2[0].length); } public static void printMatrix(int[][] matrix,int row,int col){ if(matrix==null||(row<=0&&col<=0)){ return; } int start=0; //一次打印打印出一圈的数,包含两行两列,每次打印的第一个数都是左上角的数,横纵坐标相同 while(start*2<row&&start*2<col){ printMa(matrix,row,col,start); start++; } } public static void printMa(int[][] matrix,int row,int col,int start){ int endx=col-1-start; int endy=row-1-start; //第一行,从start到endx,从左到右,行不变 for (int i = start; i <= endx; i++) { System.out.print(matrix[start][i]+" "); } //对每次循环要处理的矩阵,如果是一行的话,下面的都不必执行,从上到下,列不变 if(start<endy){ for (int i = start+1; i <=endy ; i++) { System.out.print(matrix[i][endx]+" "); } } //<span style="font-family: Arial, Helvetica, sans-serif;">对每次循环要处理的矩阵,</span>如果是一列的话,下面都不必执行,从右到左,行不变 if(start<endx&&start<endy){ for (int i = endx-1; i >=start ; i--) { System.out.print(matrix[endy][i]+" "); } } //<span style="font-family: Arial, Helvetica, sans-serif;">对每次循环要处理的矩阵,</span>如果是两行一列 的话,下面的都不必执行,从下到上,列不变 if(start<endx&&start<endy-1){ for (int i = endy-1; i >start ; i--) { System.out.print(matrix[i][start]+" "); } } } }
相关文章推荐
- 每天一道算法题——顺时针打印矩阵
- [算法-java] 将一个矩阵按照从外向里以顺时针的顺序打印出每一元素
- 顺时针打印矩阵[算法]
- C++输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,
- 剑指offer_输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字
- 【面试题】剑指offer20--顺时针打印一个矩阵的数字
- 每天学习一算法系列(6) (输入一个整数和一棵二元树,从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径,打印出和与输入整数相等的所有路径)
- 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字
- 输入一个矩阵,按照从外到里以顺时针的顺序依次打印每一个数字
- 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 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.
- 有一副由NxN矩阵表示的图像,这里每个像素用一个int表示,请编写一个算法,在不占用额外内存空间的情况下(即不使用缓存矩阵),将图像顺时针旋转90度。 给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转
- 每天一个小算法(3)----倒序打印链表
- 每天学习一算法系列(6) (输入一个整数和一棵二元树,从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径,打印出和与输入整数相等的所有路径)
- 每天一个算法之打印1到n位数(用数组实现)
- 【算法06】顺时针打印矩阵
- 面试算法(十九)顺时针打印矩阵
- 程序员面试题精选100题(51)-顺时针打印矩阵[算法]
- 【每天算法2】:用java语言实现,一个组数:122345这6个数,打印出它所有可能的组合;要求4不能在第3位,3和5不能相连。
- 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字
- 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8