关闭

螺旋矩阵(算法)

242人阅读 评论(0) 收藏 举报
分类:

给定一个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;
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:23240次
    • 积分:1143
    • 等级:
    • 排名:千里之外
    • 原创:46篇
    • 转载:7篇
    • 译文:49篇
    • 评论:1条
    文章分类
    最新评论