23:二维数组回形遍历
来源:互联网 发布:mac的office软件下载 编辑:程序博客网 时间:2024/05/19 09:04
23:二维数组回形遍历
- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
给定一个row行col列的整数数组array,要求从array[0][0]元素开始,按回形从外向内顺时针顺序遍历整个数组。如图所示:
- 输入
- 输入的第一行上有两个整数,依次为row和col。
余下有row行,每行包含col个整数,构成一个二维整数数组。
(注:输入的row和col保证0 < row < 100, 0 < col < 100) - 输出
- 按遍历顺序输出每个整数。每个整数占一行。
- 样例输入
4 41 2 3 412 13 14 511 16 15 610 9 8 7
- 样例输出
12345678910111213141516
- 来源
- 北京大学2009年医学部练习题
分析:参考:http://www.cnblogs.com/geek-007/p/5677254.html
不过有一个问题。。。往右遍历的时候,如果不到底,会发生超时错误。。这一点不是很明白。。。
#include <stdio.h>#include <iostream>#include <stack>#include <string.h>#include <queue>#include <cmath>#include <vector>#include <algorithm>#include <map>#include <set>#include <string>using namespace std;typedef long long LL;#define MAX 1001int a[MAX][MAX];int b[MAX][MAX];int main() { //freopen("in.txt", "r", stdin); //freopen("out.txt", "w", stdout); int n, m; scanf("%d%d",&n,&m); for(int i = 0; i < n; i++) { for(int j = 0; j < m; j++) { scanf("%d",&a[i][j]); } } int flag = 1; //当前为第1层 int sum = n * m; while(1){ for(int i = flag - 1; i < m - flag; i++){ //cout << a[flag][i] << endl; printf("%d\n",a[flag - 1][i]); sum--; if(sum == 0){ return 0; } } //这一点 如果第二个for循环将i的条件改为 i < n - flag; //即 终止条件 i == n - flag - 1; //第三个for循环 的 i的初始值 由 m - flag 开始 会造成超时错误。。不知道为啥。。。 for(int i = flag - 1; i <= n - flag; i++){ //cout << a[i][m - flag - 1] << endl; printf("%d\n",a[i][m - flag]); sum--; if(sum == 0){ return 0; } } for(int i = m - flag - 1; i > flag - 1; i--){ //cout << a[n - flag - 1][i] << endl; printf("%d\n",a[n - flag][i]); sum--; if(sum == 0){ return 0; } } for(int i = n - flag; i >= flag; i--){ //cout << a[i][flag] << endl; printf("%d\n",a[i][flag - 1]); sum--; if(sum == 0){ return 0; } } flag++; } return 0;}
阅读全文
0 0
- 23:二维数组回形遍历
- 23:二维数组回形遍历
- 二维数组回形遍历
- 回形遍历二维数组
- 二维数组回形遍历
- OpenJudge[7545]二维数组回形遍历
- 百练noi :二维数组回形遍历
- 二维数组的回型遍历
- 二维数组螺旋遍历
- 二维数组遍历
- 二维数组 蛇形遍历
- java二维数组遍历
- foreach 遍历二维数组
- javascript二维数组遍历
- 二维数组的遍历
- 二维数组遍历
- 二维数组的遍历
- ionic 遍历二维数组
- PCA16位定时器
- 循环链表解决约瑟夫环问题
- 【博览网】面向对象高级编程(上)——第三周课程笔记
- Java中final与static关键字的综合使用
- 【二叉树】将二叉搜索树转换成一个排序的双向链表
- 23:二维数组回形遍历
- 独一无二的我还用作自我介绍吗?SingletonPattern----单例模式
- 创建服务
- hdu2802 循环节思维
- MySQL exists 和 in的效率比较
- SpringMVC(1)
- XML DOM HTMLCollection 对象
- margin布局
- 标签