博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode------Spiral Matrix
阅读量:6713 次
发布时间:2019-06-25

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

标题: Spiral Matrix
通过率: 20.8%
难度:

中等

Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order.

For example,

Given the following matrix:

[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]

You should return [1,2,3,6,9,8,7,4,5].

前面先做了通过率高的第一个版本,那个给的是2Dmatrix,做这个题目的时候我没有看清楚,直接按照2Dmatrix做的,所以一直出现问题。

需要注意的是本题是M*N,所以M和N中有可能为空,有可能有一个是1,那么再循环的时候就要认真去考虑了。

直接看代码了:

1 public class Solution { 2     public List
spiralOrder(int[][] matrix) { 3 ArrayList
result=new ArrayList
(); 4 if (matrix == null || matrix.length == 0 5 || matrix[0].length == 0) { 6 return result; 7 } 8 int m=matrix.length,n=matrix[0].length; 9 int startX=0,startY=0,endX=m-1,endY=n-1;10 while(startX<=endX&&startY<=endY){11 result=getvalue(result,matrix,startX,endX,startY,endY);12 startX++;13 startY++;14 endX--;15 endY--;16 }17 return result;18 19 }20 public ArrayList
getvalue(ArrayList
res,int[][] matrix,int startX,int endX,int startY,int endY){21 if(startX==endX){22 for(int i=startY;i<=endY;i++){23 res.add(matrix[startX][i]);24 }25 return res;26 }27 else if(startY==endY){28 for(int i=startX;i<=endX;i++){29 res.add(matrix[i][startY]);30 }31 return res;32 }33 34 for(int i=startY;i<=endY;i++){35 res.add(matrix[startX][i]);36 }37 for(int i=startX+1;i<=endX;i++){38 res.add(matrix[i][endY]);39 }40 for(int i=endY-1;i>=startY;i--){41 res.add(matrix[endX][i]);42 }43 for(int i=endX-1;i>=startX+1;i--){44 res.add(matrix[i][startY]);45 }46 return res;47 48 }49 }

 

转载于:https://www.cnblogs.com/pkuYang/p/4320477.html

你可能感兴趣的文章
测试工程师常用的工具
查看>>
【已解决】如图,说我磁盘不够,看到var目录下有的个隐藏文件夹占了46G,不知道怎么删除...
查看>>
vmware网络的连接方式
查看>>
AngularJs的UI组件ui-Bootstrap分享(五)——Pager和Pagination
查看>>
Python基础21_类与类型, MRO, C3算法, super()
查看>>
IBM磁盘阵列及文件系统的管理
查看>>
Algs4-2.1.34罕见情况
查看>>
jQuery的属性操作
查看>>
BroadcastReceiver
查看>>
Python学习-字典的常见用法
查看>>
Python 异常处理
查看>>
前端 回顾
查看>>
按键精灵是否可以编写函数或方法,简化脚本,使脚本更加模块化?
查看>>
BZOJ3626LCA(树剖+线段树+LCA+差分)
查看>>
事件的产生,传递以及响应链
查看>>
练习4.4 萨提亚冰山理论应用
查看>>
python pandas 对各种文件的读写 IO tools
查看>>
【转】ios 抓取 tcp/udp 包
查看>>
Struts2入门案例——基于Struts2任意两数据的代数和
查看>>
E - Trees on the level
查看>>