_jobdu_1384:二维数组中的查找
1 /************************************************************************/ 2 /* 题目描述: 3 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 4 输入: 5 输入可能包含多个测试样例,对于每个测试案例, 6 输入的第一行为两个整数m和n(1<=m,n<=1000):代表将要输入的矩阵的行数和列数。 7 输入的第二行包括一个整数t(1<=t<=1000000):代表要查找的数字。 8 接下来的m行,每行有n个数,代表题目所给出的m行n列的矩阵(矩阵如题目描述所示,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 9 输出: 10 对应每个测试案例, 11 输出”Yes”代表在二维数组中找到了数字t。 12 输出”No”代表在二维数组中没有找到数字t。 13 样例输入: 14 3 3 15 5 16 1 2 3 17 4 5 6 18 7 8 9 19 3 3 20 1 21 2 3 4 22 5 6 7 23 8 9 10 24 3 3 25 12 26 2 3 4 27 5 6 7 28 8 9 10 29 样例输出: 30 Yes 31 No 32 No */ 33 /************************************************************************/ 34 35 /************************************************************************/ 36 /* Accomplished by Array */ 37 /************************************************************************/ 38 //#include<stdio.h> 39 //double gArr[1000][1000]; 40 //int main() 41 //{ 42 // int m,n,t,i,j; 43 // while(scanf("%d %d", &m, &n) != EOF) 44 // { 45 // scanf("%d", &t); 46 // for( i = 0; i<m; i++) 47 // for( j = 0; j<n; j++) 48 // scanf("%lf", &gArr[i][j]); 49 // i = 0; 50 // j -- ; 51 // while(i<m&&j>=0) 52 // { 53 // if(gArr[i][j] == t)break; 54 // else if(gArr[i][j]<t)i++; 55 // else if(gArr[i][j]>t)j--; 56 // } 57 // if(i<m&&j>=0)printf("Yes\n"); 58 // else printf("No\n"); 59 // m = n = t = i = j = 0; 60 // } 61 // return 0; 62 //} 63 64 /************************************************************************/ 65 /* Accomplished by Point */ 66 /************************************************************************/ 67 68 #include<stdio.h> 69 int main() 70 { 71 double * pArr = NULL; 72 double * pWork = NULL; 73 int m,n,t,i,j; 74 while(scanf("%d %d", &m, &n) != EOF) 75 { 76 scanf("%d", &t); 77 pArr = new double[m*n]; 78 for( i = 0; i<m*n; i++) 79 scanf("%lf", &pArr[i]); 80 i = 0; 81 j = n-1; 82 while(i<m&&j>=0) 83 { 84 if(pArr[i*n + j] == t)break; 85 else if(pArr[i*n + j]<t)i++; 86 else if(pArr[i*n + j]>t)j--; 87 } 88 if(i<m&&j>=0)printf("Yes\n"); 89 else printf("No\n"); 90 m = n = t = i = j = 0; 91 delete [] pArr; 92 } 93 return 0; 94 }
澄轶: suanec -
http://www.cnblogs.com/suanec/
友链:marsggbo
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
点个关注吧~
http://www.cnblogs.com/suanec/
友链:marsggbo
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
点个关注吧~