leetcode:Spiral Matrix II

原创 2016年08月30日 22:32:57

leetcode:Spiral Matrix II 

题目:

Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.

For example,

Given n = 3,

You should return the following matrix

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

即,给定矩阵大小,返回螺旋矩阵

c++实现:

#include <iostream>
#include <vector>

using namespace std;
vector<vector<int> > generateMatrix(int n)
{
	vector< vector<int> > matrix(n, vector<int>(n));

	if (n == 0) 
		return matrix;

	int beginX = 0, endX = n - 1;
	int beginY = 0, endY = n - 1;
	int num = 1;
	while (true) 
	{
		for (int j = beginX; j <= endX; ++j) 
			matrix[beginY][j] = num++;
		if (++beginY > endY) 
			break;
		for (int i = beginY; i <= endY; ++i) 
			matrix[i][endX] = num++;
		if (beginX > --endX) 
			break;
		for (int j = endX; j >= beginX; --j) 
			matrix[endY][j] = num++;
		if (beginY > --endY) 
			break;
		for (int i = endY; i >= beginY; --i) 
			matrix[i][beginX] = num++;
		if (++beginX > endX)
			break;
	}
	return matrix;
}
int main()
{
	vector<vector<int>> vec;
	int n=3;
	vec=generateMatrix(n);
	vector<vector<int>>::iterator pp;  
    vector<int>::iterator it;  
    for(pp=vec.begin();pp<vec.end();pp++)  
    {  
        for (it=(*pp).begin();it<(*pp).end();it++)  
        {  
            cout<<*it<<" ";  
        }  
        cout<<endl;  
    }  
	
	return 0;
}

测试结果:



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

Leetcode 54 spiral matrix II (螺旋矩阵)

一,问题描述1,给定一个数n,以螺旋顺序产生一个具有n*n个元素的正方形矩阵。2,格式如下: 输入: 3 输出: [1 2 3] [8 9 4] ...
  • wodedipang_
  • wodedipang_
  • 2016年10月22日 17:00
  • 235

LeetCode------54. Spiral Matrix(螺旋二维矩阵)-----59. Spiral Matrix II(n的螺旋矩阵)

Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral or...
  • nameix
  • nameix
  • 2016年11月04日 10:24
  • 126

Spiral Matrix II 螺旋矩阵II

class Solution { public:     vector > generateMatrix(int n) {         vector> matrix(n,vector(n))...
  • tangyifei1991
  • tangyifei1991
  • 2014年01月21日 20:52
  • 242

【一天一道LeetCode】#59. Spiral Matrix II

一天一道LeetCode系列(一)题目 Given an integer n, generate a square matrix filled with elements from 1 to n2...
  • terence1212
  • terence1212
  • 2016年05月24日 16:22
  • 708

Spiral Matrix II -- LeetCode

原题链接: http://oj.leetcode.com/problems/spiral-matrix-ii/  这道题跟Spiral Matrix很类似,只是这道题是直接给出1到n^2,然后把这些...
  • linhuanmars
  • linhuanmars
  • 2014年03月24日 06:54
  • 10051

LeetCode 59. Spiral Matrix II (JAVA)(螺旋矩阵2)

LeetCode 59. Spiral Matrix II (JAVA)(螺旋矩阵2)
  • mine_song
  • mine_song
  • 2017年04月17日 16:10
  • 398

LeetCode59——Spiral Matrix II

LeetCode59——Spiral Matrix II 参考LeetCode54——Spiral Matrix 唯一不同,就是对二维数组按照这个顺序进行赋值操作:1,2,3,....n 代码:...
  • zhangxiao93
  • zhangxiao93
  • 2015年10月24日 22:13
  • 639

【LeetCode】54. Spiral Matrix 解题报告

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

[Leetcode]54. Spiral Matrix @python

题目Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral ...
  • qian2729
  • qian2729
  • 2016年01月18日 21:27
  • 267

[LintCode] 螺旋矩阵II Spiral Matrix II

Given an integer n, generate a square matrix filled with elements from 1 to n^2 in spiral order.样例 ...
  • wutingyehe
  • wutingyehe
  • 2016年04月26日 13:45
  • 651
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:leetcode:Spiral Matrix II
举报原因:
原因补充:

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