Algorithms—54.Spiral Matrix

原创 2015年07月09日 14:26:26

思路:写了4条读取方法。

public class Solution {
    public List<Integer> spiralOrder(int[][] matrix) {
    	List<Integer> list=new ArrayList<Integer>();
    	//m:行,n列
    	int mb=0;
    	int nb=0;
        int me=matrix.length;
        if (me==0) {
			return list;
		}
        int ne=matrix[0].length;
    	while (true) {
    		list=new Solution().right(matrix, mb, nb, me, ne, list);
			mb++;
			if (nb>ne-1||mb>me-1) {
				return list;
			}
			list=new Solution().low(matrix, mb, nb, me, ne, list);
			ne--;
			if (nb>ne-1||mb>me-1) {
				return list;
			}
			list=new Solution().left(matrix, mb, nb, me, ne, list);
			me--;
			if (nb>ne-1||mb>me-1) {
				return list;
			}
			list=new Solution().up(matrix, mb, nb, me, ne, list);
			nb++;
			if (nb>ne-1||mb>me-1) {
				return list;
			}
		}
    }
    public List<Integer> right(int[][] matrix,int mb,int nb,int me,int ne,List<Integer> list){
    	for (int i = nb; i < ne; i++) {
			list.add(matrix[mb][i]);
		}
    	return list;
    }
    public List<Integer> left(int[][] matrix,int mb,int nb,int me,int ne,List<Integer> list){
    	for (int i = ne-1; i >=nb; i--) {
			list.add(matrix[me-1][i]);
		}
    	return list;
    }
    public List<Integer> low(int[][] matrix,int mb,int nb,int me,int ne,List<Integer> list){
    	for (int i = mb; i < me; i++) {
			list.add(matrix[i][ne-1]);
		}
    	return list;
    }
    public List<Integer> up(int[][] matrix,int mb,int nb,int me,int ne,List<Integer> list){
    	for (int i = me-1; i >=mb; i--) {
			list.add(matrix[i][nb]);
		}
    	return list;
    }
}


耗时:272ms,中游


版权声明:本文为博主原创文章,未经博主允许不得转载。

54.Spiral Matrix

54. Spiral Matrix Difficulty: Medium Given a matrix of m x n elements (m rows, n columns), return ...
  • u010486697
  • u010486697
  • 2017年03月01日 11:44
  • 60

Matrix Factorization, Algorithms, Applications, and Avaliable packages

来源:http://www.cvchina.info/2011/09/05/matrix-factorization-jungle/美帝的有心人士收集了市面上的矩阵分解的几乎所有算法和应用,由于源地址...
  • abcjennifer
  • abcjennifer
  • 2014年06月13日 00:12
  • 9636

UVa442 Matrix Chain Multiplication(矩阵链乘)java实现

题目描述:输入n个矩阵的维度和一个矩阵链乘的表达式,输出乘法的次数,如果乘法无法进行,则输出error。...
  • kangaroo835127729
  • kangaroo835127729
  • 2014年08月07日 14:58
  • 815

leetcode - 54.Spiral Matrix

Spiral Matrix
  • qq_27350929
  • qq_27350929
  • 2017年03月13日 13:30
  • 38

[leetcode] 54.Spiral Matrix

题目: Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spir...
  • u014673347
  • u014673347
  • 2015年05月09日 14:07
  • 255

【LeetCode】54. Spiral Matrix 解题报告

转载请注明出处:http://blog.csdn.net/crazy1235/article/details/50771703Subject 出处:https://leetcode.com/pro...
  • crazy1235
  • crazy1235
  • 2016年05月15日 10:28
  • 5537

[LeetCode]54.Spiral Matrix

【题目】 Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in...
  • SunnyYoona
  • SunnyYoona
  • 2015年02月05日 10:59
  • 1163

LeetCode 54.Spiral Matrix (Medium)

原题地址:https://leetcode.com/problems/spiral-matrix/description/题目描述: Given a matrix of m x n elements...
  • qq_33256893
  • qq_33256893
  • 2017年09月08日 23:45
  • 54

算法导论示例-MatrixChain

/** * Introduction to Algorithms, Second Edition * 15.2 Matrix-chain multiplication * @author 土豆爸爸 ...
  • s3n
  • s3n
  • 2006年06月14日 02:57
  • 1361

Matrix Completion

http://perception.csl.illinois.edu/matrix-rank/references.html 2010年的CVPR最佳paper:Efficient computat...
  • alec1987
  • alec1987
  • 2012年04月09日 16:03
  • 2925
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Algorithms—54.Spiral Matrix
举报原因:
原因补充:

(最多只允许输入30个字)