经典二维数组查找算法

自己做下记录。

题目:一个有序的二维数组,每行从左到右,每列从上到下,不断增加,查找某个数。

将查找目标 与 最右上角的值做比较,如果小于,则直接排除一列,如果大于,则排除当前行。

class Solution {
public:
    bool Find(int target, vector<vector<int> > array) {
        if(array.size()!=0)
        {
            // vector 二维数组  array.size() 获取行数
            //                 array[0].size() 获取列数
            int cow =0;
            int col = array[0].size()-1;
            while(cow<array.size()&&col>=0)
            {
                if(target==array[cow][col])
                {
                    return true;
                }
                else if(target<array[cow][col])
                {
                    col--;
                }
                else
                {
                    cow++;
                }
            }
             
        }
        return false;
    }
};

 

上一篇:Silver Cow Party


下一篇:Silver Cow Party POJ - 3268(找各个点到源点来回路程最短中的最大值)