这几天为了找工作开始看《剑指offer》,到现在也大概浏览一遍了,前两天看作者博客中提到九度OJ,就去看了一下,发现上面有书上的题目,就想可以自己写代码练习一下,而不仅仅是看解题思路,毕竟还是觉得写代码实在。可是现在却不想一道一道做了,知道怎么解决并且看过代码后忽然就没动力再去写了...唉...
不过最后还是决定写点,写一点是一点吧,记录一下自己的代码。也许我一看要写50道题就有点害怕了,毕竟最近因为找工作的事情有点闹心,没法静下心来做事情,uva也暂时停止了,反正现在搞的挺乱的...
好了,没用的话说也说了,说一下感受吧,浏览完这本书后留下印象最深的就是对空指针的判断,每一个涉及指针的操作都要先判断是否为NULL,以前我是从未考虑的,因为在oj上做题是不用考虑这个的,所以我几乎没这个习惯,看来以后要该改啦。收获一方面是解题思路,另一方面就是代码的鲁棒性了,给我上了很好的一堂课。的确,自己还有很多不足,还要好好努力...
@2013-09-26
题3:二维数组中的查找。
1 #include <cstdio> 2 #define MAXN 1000+10 3 4 int a[MAXN][MAXN]; 5 6 int main() 7 { 8 #ifdef LOCAL 9 freopen("in", "r", stdin); 10 #endif 11 int m, n; 12 while (scanf("%d%d", &m, &n) != EOF) 13 { 14 int target; 15 scanf("%d", &target); 16 for (int i = 0; i < m; i++) 17 for (int j = 0; j < n; j++) 18 scanf("%d", &a[i][j]); 19 int x = 0, y = n-1; 20 bool ok = false; 21 while (x < m && y >= 0) 22 { 23 if (a[x][y] == target) 24 { 25 ok = true; 26 break; 27 } 28 else if (a[x][y] > target) y--; 29 else x++; 30 } 31 if (ok) printf("Yes\n"); 32 else printf("No\n"); 33 } 34 return 0; 35 }