您的位置:首页 > 其它

螺旋矩阵(算法)

2015-07-06 16:31 351 查看
给定一个m*n 的矩阵,按螺旋顺序返回所有元素

举例:

1 2 3

4 5 6

7 8 9

返回 : 123698745

ArrayList<Integer> spiralOrder(int [][] matrix)
{
ArrayList<Integer> result = new ArrayList<Integer>();
if(matrix.length == 0)	return result;
int beginX = 0,endX = matix[0].length -1 ;
int beginY = 0 , endY = matrix.length -1;

while(true)
{
for(int i = beginX; i <= endX; i++)
result.add(matrix[beginY][i]);
if(++begineY > endY) break;
for(int  i = beginY; i <= endY;++i)
result.add(matrix[i][endX]);
if(beginX > --endX) break;
for(int i = endX; i >= beginX; --i)
result.add(matrix[i][beginX]);
if(++beginX > endX) break;
}
return result;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: