博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Print matrix spiral
阅读量:6125 次
发布时间:2019-06-21

本文共 1370 字,大约阅读时间需要 4 分钟。

Problem

Print a matrix in spiral fashion.

Solution

We will first print the periphery of the matrix by the help of 4 for loops. Then recursively call this function to do the same thing with inner concentric rectangles. We will pass this information by a variable named depth, which will tell how many layers from outside should be ignored.

Code

public class PrintMatrixSpiral{ public static void main(String[] args) {  int[][] matrix =  {  { 3, 4, 5, 6, 2, 5 },  { 2, 4, 6, 2, 5, 7 },  { 2, 5, 7, 8, 9, 3 },  { 2, 4, 7, 3, 5, 8 },  { 6, 4, 7, 3, 5, 7 } };  printSpiral(matrix); } public static void printSpiral(int[][] matrix) {  printSpiral(matrix, 0); } private static void printSpiral(int[][] matrix, int depth) {  if (matrix == null && matrix.length == 0)   return;  int rows = matrix.length;  int cols = matrix[0].length;  if (2 * depth > Math.min(rows, cols))   return;  for (int i = depth; i < cols - depth - 1; ++i)  {   System.out.print(matrix[depth][i] + ",");  }  for (int i = depth; i < rows - depth - 1; ++i)  {   System.out.print(matrix[i][cols - depth - 1] + ",");  }  for (int i = rows - depth; i > depth; --i)  {   System.out.print(matrix[rows - depth - 1][i] + ",");  }  for (int i = rows - depth - 1; i > depth; --i)  {   System.out.print(matrix[i][depth] + ",");  }  printSpiral(matrix, ++depth); }}

 

转载于:https://www.cnblogs.com/leetcode/p/4012460.html

你可能感兴趣的文章
js document.activeElement 获得焦点的元素
查看>>
C++ 迭代器运算
查看>>
【支持iOS11】UITableView左滑删除自定义 - 实现多选项并使用自定义图片
查看>>
day6-if,while,for的快速掌握
查看>>
JavaWeb学习笔记(十四)--JSP语法
查看>>
【算法笔记】多线程斐波那契数列
查看>>
java8函数式编程实例
查看>>
jqgrid滚动条宽度/列显示不全问题
查看>>
在mac OS10.10下安装 cocoapods遇到的一些问题
查看>>
angularjs表达式中的HTML内容,如何不转义,直接表现为html元素
查看>>
css技巧
查看>>
Tyvj 1728 普通平衡树
查看>>
[Usaco2015 dec]Max Flow
查看>>
javascript性能优化
查看>>
多路归并排序之败者树
查看>>
java连接MySql数据库
查看>>
转:Vue keep-alive实践总结
查看>>
android studio修改新项目package名称
查看>>
深入python的set和dict
查看>>
C++ 11 lambda
查看>>