数组相关编程题

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

1.查找的过程,本质是排除的过程
2.是的,一次排除一行或者一列
3.临界条件
 

数组相关编程题_第1张图片

 

#include 
class Solution {
public:

    bool Find(int target, vector >& array) {
        // write code here
         int i=0; //表示哪一行
         int j=array[0].size()-1;//定位到右上角,第一行数组大小-1是下标

         while(i=0)//控制结束条件,不要越界
         {
           if(target < array[i][j])//要找的那个数比右上角的数小,说明不在这一列
           {
             j--;
           }
           else if(target > array[i][j])//要找的那个数比右上角的数大,说明不在这一行
           {
           i++;
           }
           else
           {
            return true;
           }
         }
         return false;
    }
};

你可能感兴趣的:(面试题,算法,数据结构)