PTA:1050 螺旋矩阵c语言,有个测试点不知为啥过不了,求大佬看看

  1. 动态内存:vector二维向量:定义:vector<vector > b(m,vector(n)):定義一个m*n大小的vector容器另外也可以动态变量(现在还不会,没看懂)也可以在全局变量定义一个很大的数组。
  2. 关于找mn:从sqrt(N)向前找。
  3. 關于填充方法:寻找四个角的规律。遇到已经填充的格子改变方向。
  4. 错误分析:一开始想用模拟结果模拟错误。

1. 算出m(行)、n(列)的值

2. 由于n仳较小,因此根据n算出矩阵的圈数

3. 根据圈数填充矩阵

核心处理部分就是矩阵的填充。

修改一下fillMatrix中圈数循环中各个小循环的边界可以省畧if语句,同时也成为了通用一些的螺旋矩阵c语言填充算法(不论m、n的大小)

//n是奇数,最后一圈(列状)特别处理。

我要回帖

更多关于 螺旋矩阵 的文章

 

随机推荐