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

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

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].

 

Note: this soluntion beats 100% C# submissions.

1 public class Solution { 2     public IList
SpiralOrder(int[,] matrix) { 3 int rows = matrix.GetLength(0), cols = matrix.GetLength(1); 4 var result = new List
(); 5 6 int upRow = 0, downRow = rows - 1, leftCol = 0, rightCol = cols - 1; 7 while (upRow <= downRow && leftCol <= rightCol) 8 { 9 if (upRow == downRow)10 {11 for (int j = leftCol; j <= rightCol; j++)12 {13 result.Add(matrix[upRow, j]);14 }15 break;16 }17 18 if (leftCol == rightCol)19 {20 for (int j = upRow; j <= downRow; j++)21 {22 result.Add(matrix[j, rightCol]);23 }24 break;25 }26 27 for (int j = leftCol; j <= rightCol; j++)28 {29 result.Add(matrix[upRow, j]);30 }31 32 for (int j = upRow + 1; j <= downRow - 1; j++)33 {34 result.Add(matrix[j, rightCol]);35 }36 37 for (int j = rightCol; j >= leftCol; j--)38 {39 result.Add(matrix[downRow, j]);40 }41 42 for (int j = downRow - 1; j > upRow; j--)43 {44 result.Add(matrix[j, leftCol]);45 }46 47 leftCol++;48 rightCol--;49 upRow++;50 downRow--;51 }52 53 return result;54 }55 }

 

转载于:https://www.cnblogs.com/liangmou/p/7807562.html

你可能感兴趣的文章
淘宝JAVA中间件Diamond详解(一)---简介&快速使用
查看>>
一种简单的数据库性能测试方法
查看>>
如何给JavaScript文件传递参数
查看>>
Centos 卸载 java
查看>>
使用java实现发送邮件的功能
查看>>
使用WebView在应用程序中打开网页
查看>>
easyui日期在未加载easyui-lang-zh_CN.js出现英文的情况下加载中文的方法
查看>>
Open vSwitch 2.9.2 创建 RPM 安装包
查看>>
log4j2 项目日志组件
查看>>
json解析数据
查看>>
dword word byte 相互转换 .xml
查看>>
加载maven中没有jar的命令
查看>>
作业6 团队项目之需求
查看>>
linux命令--shutdown
查看>>
用JASS简单修改魔兽争霸地图
查看>>
换站点Logo图片---轻开电子商务系统(企业入门级B2C站点)
查看>>
android学习十四(android的接收短信)
查看>>
正則表達式
查看>>
CF Gym 100187E Two Labyrinths (迷宫问题)
查看>>
【转载】C#使用Except方法求取两个List集合的差集数据
查看>>