螺旋矩阵

给定一个包含 m x n 个要素的矩阵,(m 行, n 列),按照螺旋顺序,返回该矩阵中的所有要素。

样例

给定如下矩阵:

[

    [ 1, 2, 3 ],

    [ 4, 5, 6 ],

    [ 7, 8, 9 ]

]

应返回 [1,2,3,6,9,8,7,4,5]。

标签

数组 矩阵

code

class Solution {
public:
/**
* @param matrix a matrix of m x n elements
* @return an integer array
*/
vector<int> spiralOrder(vector<vector<int>>& matrix) {
// Write your code here
vector<int> order;;
int tlx,tly,brx,bry;
int i,j; if(matrix.size() == 0)
return order;
tlx = tly = 0;
brx = matrix[0].size();
bry = matrix.size(); if(brx >= bry) {
for(j=0; j<matrix.size()/2; j++) {
for(i=tlx; i<brx; i++) {
order.push_back(matrix[tlx][i]);
}
for(i=tly+1; i<bry; i++) {
order.push_back(matrix[i][brx-1]);
}
for(i=brx-2; i>=tlx; i--) {
order.push_back(matrix[bry-1][i]);
}
for(i=bry-2; i>=tly+1; i--) {
order.push_back(matrix[i][tlx]);
}
tlx++;tly++; brx--;bry--;
}
if(matrix.size()%2 == 1) {
for(i=tlx; i<brx; i++)
order.push_back(matrix[tlx][i]);
}
}
}
else
{
for(j=0; j<matrix[0].size()/2; j++) {
for(i=tlx; i<brx; i++) {
order.push_back(matrix[tlx][i]);
}
for(i=tly+1; i<bry; i++) {
order.push_back(matrix[i][brx-1]);
}
for(i=brx-2; i>=tlx; i--) {
order.push_back(matrix[bry-1][i]);
}
for(i=bry-2; i>=tly+1; i--) {
order.push_back(matrix[i][tlx]);
}
tlx++;tly++; brx--;bry--;
}
if(matrix[0].size() %2 == 1) {
for(i=tly; i<bry; i++) {
order.push_back(matrix[i][brx-1]);
}
}
}
return order;
}
};

LintCode-374.螺旋矩阵的更多相关文章

  1. PAT 1050. 螺旋矩阵(25)

    本题要求将给定的N个正整数按非递增的顺序,填入"螺旋矩阵".所谓"螺旋矩阵",是指从左上角第1个格子开始,按顺时针螺旋方向填充.要求矩阵的规模为m行n列,满足条 ...

  2. leetcode-Spiral Matrix II 螺旋矩阵2之python大法好,四行就搞定,你敢信?

    Spiral Matrix II 螺旋矩阵 Given an integer n, generate a square matrix filled with elements from 1 to n2 ...

  3. Java-基础编程(螺旋矩阵&乘法表)

    package cn.rick.study; import java.io.BufferedReader;import java.io.InputStreamReader;import java.ut ...

  4. NOIP 2014 普及组 T3 螺旋矩阵

    [题意] 已知:n,r,c(n<=30000) 条件:给定n行n列的螺旋矩阵(从矩阵的左上角(1,1)出发,初始时向右移动:如果前方是未曾经过的格子, 则继续前进,否则右转:重复上述操作直至经过 ...

  5. PAT-乙级-1050. 螺旋矩阵(25)

    1050. 螺旋矩阵(25) 时间限制 150 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求将给定的N个正整数按非递增的 ...

  6. NOIP2014-普及组复赛-第三题-螺旋矩阵

    题目描述 Description 一个n行n列的螺旋矩阵可由如下方法生成: 从矩阵的左上角(第1行第1列)出发,初始时向右移动:如果前方是未曾经过的格子,则继续前进,否则右转:重复上述操作直至经过矩阵 ...

  7. LeetCode 59. Spiral Matrix II (螺旋矩阵之二)

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

  8. LeetCode 54. Spiral Matrix(螺旋矩阵)

    Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral or ...

  9. Code Kata:螺旋矩阵 javascript实现

    1 2 3 4  5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9  如图所示,就是一个5*5的螺旋矩阵 我的思路如下: 第一步:拆分 ...

  10. HrbustOJ 1564 螺旋矩阵

    Description 对于给定的一个数n,要你打印n*n的螺旋矩阵. 比如n=3时,输出: 1 2 3 8 9 4 7 6 5 Input 多组测试数据,每个测试数据包含一个整数n(1<=n& ...

随机推荐

  1. BUG-jQuery提交表单submit方法-TypeError: e[h] is not a function

    问题:button按钮设置id为submit后,表单jquery.submit()无法提交,报告异常TypeError: e[h] is not a function 源码: 解决:参考http:// ...

  2. ruby配置镜像源

    1.打开电脑的cmd窗口,输入如下命令即可查看gem镜像: gem sources l 或是直接使用 gem sources 查询结果如下: C:\Users\Administrator>gem ...

  3. c语言:矩阵相乘-矩阵相加 新手练习1

    #include<stdio.h> #include<stdlib.h> #include<time.h> #include<string.h> voi ...

  4. go内建容器-数组

    1.基础定义 声明时数组长度在数组成员类型前 语法:var variableName [length]int //基本定义 var array1 [3]int //定义并赋值 var array2 = ...

  5. 破解有道词典在线翻译接口--python

    没什么好说的,直接上代码. import requests # import json import time import random import hashlib translate = inp ...

  6. 北京Uber优步司机奖励政策(12月14日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  7. 成都Uber优步司机奖励政策(2月28日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  8. 【NIS】深入了解NIS

    1  简介 NIS( NetworkInformation Service)提供了一个网络黄页的功能,当用户登录系统时,Linux系统会到NIS主机上去寻找用户使用的帐号密码信息加以比对,以提供用户登 ...

  9. NB-IOT修改KV值的方法

    1. 安装UEConfigurationEditor-3.22.0.14.msi,之后打开一个fwpkg文件,如下图 2. 找到需要修改的KV值,修改之后,点击Apply changes,应用修改,然 ...

  10. 一文带你了解 Raft 一致性协议的关键点

    此文已由作者孙建良授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. Raft 协议的发布,对分布式行业是一大福音,虽然在核心协议上基本都是师继 Paxos 祖师爷(lampor ...