二維數組中的查找

題目描述
在一個二維數組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。
思路:從右上方開始查找,當大於該值,則該值對應的列值更大,刪除,當小於該值,則刪除該值對應的行,以此進行。

class Solution {
public:
    bool Find(int target, vector<vector<int> > array) {

    if(array.size()==0)
        return false;
    int rows=array.size();
    int cols=array[0].size();
    int row=0;
    int col=cols-1;
    while(row<rows&&col>=0)//不會超出該矩陣的範圍
    {
        if(array[row][col]==target)
            return true;
        else if(array[row][col]>target)//從右上角開始比較,若大於目標值,則該列被刪除
            col--;
        else//若小於目標值,則該行被刪除
            row++;
    }
    return false;

    }
};
發佈了42 篇原創文章 · 獲贊 15 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章