九度1348
来源:互联网 发布:音乐剪辑合并软件 知乎 编辑:程序博客网 时间:2024/04/30 01:45
#include "iostream"using namespace std;int main(int argc, char *argv[]){ int m , n; int t; cin >> m >> n; while (m != 0 && n != 0) { cin >> t; int array[m][n]; bool flag = false; for(int i = 0; i < m; i++) for( int j = 0; j < n; j++) { cin >> array[i][j]; } if(array[0][0] == t) { flag = true; } else { int rr = 1; for(rr;rr < m; rr++) { if(array[rr][0] == t) { flag = true; } else if(array[rr-1][0] < t && array[rr][0] > t) { int j = 1; for( j;j < n;j++) { if(array[rr-1][j] == t) { flag = true; } } } } } if(flag == true) cout << "Yes"; else cout << "No"; cin >> m >> n; } return 0;}
思路:
考虑到矩阵每行从左至右递增,每列从上至下递增,假设需要查找的变量为t,则t可以先和左下角元素比较,设左下角元素为arr[row-1][0]。
若t > arr[row-1][0],则t只能和arr[row-1][0]右边的元素比较,即比较t与arr[row-1][1],若t < arr[row-1][0],则t只能与arr[row-1][0]上面的元素比较,即比较arr[row-2][0]。
以此类推,直至找到t,或者走出矩阵。
细节:
第1行,保含内置头文件一般用尖括号。
第6行,变量名尽量表意,这里可以写int row, col;
第12行,可以在循环外预先定义一个大数组,每次循环都定义数组效率比较低。如const int MAXN = 10000;int array[MAXN][MAXN];
0 0
- 九度1348
- 【九度OJ】:九度OJ 1050
- 【九度OJ】:九度OJ 1053
- 【九度OJ】:九度OJ 1056
- 【九度OJ】:九度OJ 1059
- 【九度OJ】:九度OJ 1206
- 人生九度
- 九度oj1181
- 九度oj1207
- 九度oj1182
- 九度o j1026
- 九度oj1186
- 九度oj1074
- 九度oj1127
- 九度oj1051
- 九度oj1197
- 九度oj1188
- 九度oj1195
- CentOS 6.5 升级内核到 3.10.28
- extjs tabpanel 添加header不能重复加载tabpanel 的问题
- mysql infobright
- protege 中无法看本体的类图,修改方法安装graphviz后遇到的问题
- Catalan数应用
- 九度1348
- 集群搭建必备:虚拟机之一实现Host-only方式上网
- oracle创建表空间
- [[UIScreen mainScreen] bounds] 获取宽高不正确的问题
- 毕业后的五年拉开大家差距的原因
- css3摘要
- 修改Android三屏开机画面
- tomcat 更改servlet 是不是需要重启服务器
- ubuntu修改用户名、计算机名、主目录名