码迷,mamicode.com
首页 > 编程语言 > 详细

剑指offer:二维数组的查找

时间:2015-07-13 17:57:28      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:

题目:在一个二维数组中,每一行都按照从左到右的递增顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样一个二维数组和一个整数,判断数组中是否含有该整数。

分析:数组如下所示
技术分享
方式大致如下:
技术分享
选择的应该是右上角或者左下角。
  1. // 二维数组matrix中,每一行都从左到右递增排序,
  2. // 每一列都从上到下递增排序
  3. bool Find(int* matrix, int rows, int columns, int number)
  4. {
  5. bool found = false;
  6. if(matrix != NULL && rows > 0 && columns > 0)
  7. {
  8. int row = 0;
  9. int column = columns - 1;
  10. while(row < rows && column >=0)
  11. {
  12. if(matrix[row * columns + column] == number)
  13. {
  14. found = true;
  15. break;
  16. }
  17. else if(matrix[row * columns + column] > number)
  18. -- column;
  19. else
  20. ++ row;
  21. }
  22. }
  23. return found;
  24. }






剑指offer:二维数组的查找

标签:

原文地址:http://www.cnblogs.com/zhuzhenfeng/p/4643344.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!