在一个二维数组中查找一个整数

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

解题思路:在一个数组中查找一个整数,只有两种情况在或者不在,由题可知左上角元素值最小,右下角元素值最大,因此只要要查找的关键值在范围内就进入循环体,否则返回false。话不多少,献上代码:

代码实现:

class Solution {
public:
    bool Find(int target, vector<vector<int> > array) {
        int rows = array.size();
        int cols = array[0].size();
        int i=rows-1,j=0;
        //if(array[0][0]>target&&array[rows][array.size()])
           // return false;判断关键值target是否在数组中   
        while(i>=0 && j<cols){
            if(target<array[i][j])
                i--;
            else if(target>array[i][j])
                j++;
            else
                return true;
        }
        return false;
    }
};

              


版权声明:本文为liu19970523原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。