博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
螺旋矩阵
阅读量:6267 次
发布时间:2019-06-22

本文共 1541 字,大约阅读时间需要 5 分钟。

hot3.png

测试所有代码:

#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;const int M = 5;const int N = 6;vector
> build_spiral_matrix(int m, int n);vector
print_spiral_matrix(const vector
> &vec);int main() { auto mat1=build_spiral_matrix(M, N); for (int j = 0;j < M;++j) { copy(mat1[j].begin(), mat1[j].end(), ostream_iterator
(cout, " ")); cout << endl; } auto ans2 = print_spiral_matrix(mat1); copy(ans2.begin(), ans2.end(), ostream_iterator
(cout, " ")); return 0;}//螺旋矩阵的构造vector
> build_spiral_matrix(int m, int n) { vector
> ans(m, vector
(n, 0)); int index = 0; int i; int bx = 0; int ex = n - 1; int by = 0; int ey = m - 1; while (1) { for (i = bx;i <= ex;++i) { ans[by][i] = ++index; } if (++by>ey) break; for (i = by;i <= ey;++i) { ans[i][ex] = ++index; } if (--ex
= bx;--i) { ans[ey][i] = ++index; } if (--ey
= by;--i) { ans[i][bx] = ++index; } if (++bx>ex) break; } return ans;}//螺旋矩阵的打印vector
print_spiral_matrix(const vector
> &vec) { vector
ans; if (vec.size() == 0) { return ans; } int bx = 0; int ex = vec[0].size() - 1; int by = 0; int ey = vec.size() - 1; int i; while (1) { for (i = bx;i <= ex;++i) { ans.push_back(vec[by][i]); } if (++by>ey) break; for (i = by;i <= ey;++i) { ans.push_back(vec[i][ex]); } if (--ex
= bx;--i) { ans.push_back(vec[ey][i]); } if (--ey
= by;--i) { ans.push_back(vec[i][bx]); } if (++bx>ex) break; } return ans;}

 

转载于:https://my.oschina.net/zengjs275/blog/692570

你可能感兴趣的文章
Linux_DHCP服务搭建
查看>>
[SilverLight]DataGrid实现批量输入(like Excel)(补充)
查看>>
秋式广告杀手:广告拦截原理与杀手组织
查看>>
翻译 | 摆脱浏览器限制的JavaScript
查看>>
闲扯下午引爆乌云社区“盗窃”乌云币事件
查看>>
02@在类的头文件中尽量少引入其他头文件
查看>>
JAVA IO BIO NIO AIO
查看>>
input checkbox 复选框大小修改
查看>>
网吧维护工具
查看>>
BOOT.INI文件参数
查看>>
vmstat详解
查看>>
新年第一镖
查看>>
unbtu使用笔记
查看>>
MaxCompute 学习计划(一)
查看>>
OEA 中 WPF 树型表格虚拟化设计方案
查看>>
Android程序开发初级教程(一) 开始 Hello Android
查看>>
使用Gradle打RPM包
查看>>
“我意识到”的意义
查看>>
淘宝天猫上新辅助工具-新品填表
查看>>
再学 GDI+[43]: 文本输出 - 获取已安装的字体列表
查看>>