[leetcode-54]Spiral Matrix(C语言)

原创 2015年07月08日 20:52:50

问题描述:
Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order.

For example,
Given the following matrix:

[
[ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7, 8, 9 ]
]
You should return [1,2,3,6,9,8,7,4,5].

这道题没啥可说的,上代码:

int* spiralOrder(int** matrix, int matrixRowSize, int matrixColSize) {
        int length = matrixRowSize*matrixColSize;
    int *result = (int *)malloc(sizeof(int)*length);
    char *visited = (char *)calloc(length,sizeof(char));//store visited element

    int index = 0;
    int row=0,col=-1;
    while(1){
        if(index == length)
            break;
        for(col=col+1;col<matrixColSize;col++){
            if(visited[row*matrixColSize+col] == 1)         
                break;
            result[index++]=matrix[row][col];
            visited[row*matrixColSize+col] = 1;
        }
        col--;
        for(row = row+1;row<matrixRowSize;row++){
            if(visited[row*matrixColSize+col] == 1)
                break;
            result[index++] = matrix[row][col];
            visited[row*matrixColSize+col] = 1;
        }
        row--;
        for(col = col-1;col>=0;col--){
            if(visited[row*matrixColSize+col] == 1)
                break;
            result[index++] = matrix[row][col];
            visited[row*matrixColSize+col] = 1;
        }
        col++;
        for(row = row-1;row>=0;row--){
            if(visited[row*matrixColSize+col] == 1)         
                break;
            result[index++] = matrix[row][col];
            visited[row*matrixColSize+col] = 1;
        }
        row++;
    }
    return result;
}

C语言矩阵运算库(Light Matrix)

最近在做卡尔曼滤波和最小二乘的一些算法,都需要运用到矩阵的运算,所以索性就写了个纯C的矩阵库(Light Matrix),只所以叫Light Matrix,因为目前只包含了矩阵的基本运算,尽量做到短小...
  • zoujiachi666
  • zoujiachi666
  • 2017年08月09日 04:14
  • 1167

Spiral Matrix问题及解法

问题描述: Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix i...
  • u011809767
  • u011809767
  • 2017年07月27日 21:57
  • 63

Spiral Matrix II(旋转矩阵)

Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order. For...
  • cow__sky
  • cow__sky
  • 2014年03月07日 21:31
  • 732

模仿R语言c++ 向量类c 矩阵类matrix等(持续更新 欢迎指点)

这部分利用C++模仿定义了R的向量、矩阵运算,不断更新,在效率上部分编码有欠缺,欢迎指点。 本人统计狗出身,勿喷。...
  • sinat_30665603
  • sinat_30665603
  • 2015年09月22日 22:52
  • 845

异想家纯C语言矩阵运算库

Sandeepin最近做的项目中需要在嵌入式芯片里跑一些算法,而这些单片机性能不上不下,它能跑些简单的程序,但又还没到上Linux系统的地步。所以只好用C语言写一些在高级语言里一个函数就解决的算法了,...
  • sandeepin
  • sandeepin
  • 2016年11月30日 23:55
  • 2246

C语言实现常见的矩阵运算函数

C语言 矩阵转置函数 矩阵加(减)法函数 矩阵乘法函数 矩阵求逆函数 矩阵乔里斯基分解函数...
  • linaijunix
  • linaijunix
  • 2015年12月19日 15:58
  • 10779

Spiral Matrix所谓的顺时针打印矩阵

很久之前我面试曾遇到过这道题目,现场写的非常混乱。这道题目应该算是难题,难在对边界条件的处理。 如何发现规律,发现不变式,并能保证简单性是关键。一个明显的不变式是(→ ↓ ← ↑ )如何让它顺畅的循...
  • ylzintsinghua
  • ylzintsinghua
  • 2014年12月22日 09:41
  • 292

C和指针之数组编程练习3(判断矩阵是否为单位矩阵)

1、题目  *3.单位矩阵就是一个正方形矩阵,它除了主对角线元素值为1以外,其余元素的值均为0,例如:  *1 0 0  *0 1 0  *0 0 1  *就是一个3×3单位矩阵,编写一个名叫iden...
  • u011068702
  • u011068702
  • 2017年11月12日 23:57
  • 128

leetcode-54 Spiral Matrix 顺时针打印矩阵(《剑指offer》面试题20)

问题描述: Given a matrixof m x n elements (m rows, n columns),return all elements of the matrix in spira...
  • woliuyunyicai
  • woliuyunyicai
  • 2015年12月02日 19:23
  • 799

蛇形螺旋矩阵的生成和遍历 Spiral Matrix

[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ] 一个n*n矩阵像上面这样,自然数从1到n,由外到里螺旋者走,这样叫Spir...
  • luckyjoy521
  • luckyjoy521
  • 2014年02月27日 20:10
  • 1239
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[leetcode-54]Spiral Matrix(C语言)
举报原因:
原因补充:

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