首頁  >  文章  >  後端開發  >  C++實作在二維數組中的查找

C++實作在二維數組中的查找

little bottle
little bottle原創
2019-04-09 11:14:573399瀏覽

今天小編在網路上看到一道小題目,是關於在二維數組中的查找,帶大家一起來學習一下,感興趣的好好看看,附上代碼可以仿照編寫一下哦!

C++實作在二維數組中的查找

主題:

在一個二維陣列中,每一行都依照從左到右遞增的順序排序,每一列都依照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組是否含有該整數。

1、想法

首先選取陣列中右上角的數字。如果該數字等於要找的數字,查找過程結束;如果該數字大於要查找的數組,請剔除這個數字所在的列;如果該數字小於要查找的數字,則剔除這個數字所在的行。也就是說如果要查找的數字不在數組的右上角,則每次都在數組的查找範圍中剔除一行或者一列,這樣每一步都可以縮小查找的範圍,直到找到要查找的數字,或者查找範圍為空。

2、範例

        如果在二維陣列中找到數字7,則傳回true,若找不到,則傳回false。

        1      2      8       9 

             4      7      10     13 

        

C++實作在二維數組中的查找

3、程式實作

class Solution {
public:
    bool Find(int target, vector<vector<int> > array) {
        int rows = array.size();
        int cols = array[0].size();
        if(!array.empty() && rows > 0 && cols > 0){
            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;
    }
};

【推薦課程:C 影片教學

#

以上是C++實作在二維數組中的查找的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn