剑指offer 66题 -- 二维数组的查找

class Solution {
public:
bool Find(int target, vector<vector<int> > array) {
  //变量定义区
  int colNum = array[0].size(); //列数目
  int rowNum = array.size(); // 行数目
  int moveCol = colNum-1;
  int moveRow = 0;

  //入参有效性判断
  if(colNum <= 0 || rowNum <= 0)
    return false;

  //从右上角开始
  while(moveCol >= 0 && moveRow < rowNum)
  {
    if(target == array[moveRow][moveCol])
      return true;
    else if(array[moveRow][moveCol] > target)
      moveCol --;
    else
      moveRow ++;

  }
  return false;
}
};

 

程序已通过牛客网测试。

posted @ 2017-02-27 22:03  夜雨寒山  阅读(90)  评论(0编辑  收藏  举报