程序员面试宝典--8.3循环和数组 zigzag编码
来源:互联网 发布:原画梦的网络课很烂 编辑:程序博客网 时间:2024/05/21 19:44
之字形编码;
思路:设置flag标志走向!注意转折点的处理
/*zigzag数组是一个“之”字形排列的数组,如8*8的zigzag数组: 0 1 5 6 14 15 27 28 2 4 7 13 16 26 29 42 3 8 12 17 25 30 41 43 9 11 18 24 31 40 44 53 10 19 23 32 39 45 52 54 20 22 33 38 46 51 55 60 21 34 37 47 50 56 59 61 35 36 48 49 57 58 62 63*/#include<iostream>#include<vector>using namespace std;int main(){ int n=0; cin>>n; vector<vector<int>> vec; vector<int> vec1; for(int j=0;j<n;j++) { for(int i=0;i<n;i++) vec1.push_back(0); vec.push_back(vec1); } int i=0,j=0; int flag=0; vec[0][0]=0; int count=1; //cout<<(n*n)<<endl; while(count<(n*n)) { if(flag==0) { if(i==0&&j!=n-1) { vec[i][++j]=count; flag=1; } else if(i!=n-1&&j==n-1) { vec[++i][j]=count; flag=1; } else if(i!=n-1&&j==0) { vec[++i][j]=count; flag=-1; } else if(i==n-1&&j!=n-1) { vec[i][++j]=count; flag=-1; } } else if(flag==1) { vec[++i][--j]=count; if(j==0||i==n-1) flag=0; } else if(flag==-1) { vec[--i][++j]=count; if(i==0||j==n-1) flag=0; } count++; } for(int i=0;i<n;i++){ for(int j=0;j<n;j++) printf("%6d ",vec[i][j]); cout<<endl; } return 0;}
0 0
- 程序员面试宝典--8.3循环和数组 zigzag编码
- 程序员面试宝典:输出zigzag数组
- 程序员面试宝典 zigzag数组问题 p92 new二维数组
- 【程序员面试宝典读书笔记】指针数组和数组指针
- 程序员面试宝典 C14字符串 14.2 字符串数组和strcpy
- //程序员面试宝典指针数组p74
- 程序员面试宝典---等长数组
- 【程序员面试宝典】数组相关面试题
- 程序员面试宝典---8.3 打靶
- 2012年8月24日学习笔记---程序员面试宝典--循环、递归和概率
- 程序员面试宝典-----(预处理,sizeof和const)
- 程序员面试宝典--session和cookie
- 《程序员面试宝典》下载和介绍
- 程序员面试宝典笔记3--循环递归概率
- 【程序员面试宝典】数据结构基础三循环链表
- 7.c/c++程序员面试宝典-循环语句
- 程序员求职之道(《程序员面试笔试宝典》)之数据结构与算法(数组和链表的区别)?
- 程序员求职之道(《程序员面试笔试宝典》)之数据结构与算法(数组和链表的区别)?
- android之surfaceView详解--自定义surfaceView和用于视频surfaceview
- context-param与init-param的区别与作用
- Es6初尝试
- Python基本数据类型
- YSlow:Add Expires headers - 为 Apache 服务器添加“文件过期时间头信息”
- 程序员面试宝典--8.3循环和数组 zigzag编码
- linux学习:ls命令说明
- 印刷机输纸故障分析
- Ubuntu 设置内容丢失的问题
- Oracle数据库中调用Java类开发存储过程、函数的方法
- 关于苹果手机的真机调试
- Fragment使用中的一些疑惑。
- effective c++读书笔记 条款2
- deep-residual-networks