劍指offer 二維陣列中的查詢

2021-08-20 07:21:18 字數 593 閱讀 1446

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

思路:每次都選取陣列中右上角的數字進行比較。如果該數字等於要查詢的數字,則查詢結束;如果該數字大於查詢的數字,則剔除這個數字所在列;如果該數字小於查詢的數字,則剔除這個數字所在行,這樣每一步都可縮小查詢範圍,直到找到要查詢的數字或者查詢範圍為空。

實現

bool findnuminmatrix(const vector&testdata,int rows,int cols,int x)

else if(testdata[row * cols + col] > x)

else row++;

} return found;

}

由以上思想可知,從矩陣的左下角開始查詢也可實現相同功能,但從左上角或右下角開始則不可以。

從左下角開始的實現

bool findnuminmatrix(const vector&testdata, int rows, int cols, int x)

}}

劍指offer 二維陣列中查詢

在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和一 個整數,判斷陣列中是否含有該整數。public class solution 因為陣列每一行都按照從左到右遞增的順序排序,每一列都按照從上到下...

劍指offer 二維陣列中查詢

從今天開始每天一題,除了節假日。在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。class solution return false class solut...

劍指offer 二維陣列中查詢

要求如下 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數 示例如下 7,1,2,8,9 2,4,9,12 4,7,10,13 6,8,11,15 思路有三種,...