劍指offer p4二維陣列中的查詢

2021-09-27 10:14:18 字數 591 閱讀 9550

分析:每次找右上角的數,如果右上角的數等於所要找的數則返回true,如果不是:

如果右上角的數大於所要查詢的數,那麼就刪除該列,因為右上角的數是該列中最小的乙個數,然後從左邊的列繼續查詢.

如果是小於所要查詢的數,則說明要查詢的數的範圍應該是在該數的右邊或者下邊,但是我們每次查詢的都是當前範圍內最右邊的列,所以往下查詢,如果這一行不是,就刪除這一行,然後繼續往下一行走.

#includeusing namespace std;

bool search(int* matrix,int rows,int columns,int target)else

// }

//其實這個演算法是從右往左刪除列,從上往下刪除行的,因此只需要比較行和0,列和最大列就可以了

int row = 0,column = columns-1;

while(row= 0)else if(matrix[row*columns + column] > target)else

}return false;

}int main(),,,

};cout<}

劍指4 二維陣列的查詢

題目 在乙個 n m 的二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。1.判斷是否為空,除了mat.size 以外,不要忘了本身為乙個vector mat.empty mat 0 emp...

劍指offer4 二維陣列中查詢

在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列也都是按照從上到下遞增的順序排序。完成乙個函式,輸入乙個二維陣列和乙個整數,判斷該陣列中是否含有該整數。最開始的想法肯定就是暴力搜尋了,雙重for迴圈,但是這樣就和題目中給定的遞增的條件沒什麼關係了,顯然不是題目的本意。於是,採取另一種辦法...

劍指offer 4 二維陣列中查詢

乙個n m的二維陣列中,每一行都按照從左往右遞增的順序排序 每一列都按照從上到下遞增的順序排序。實現乙個函式 輸入乙個這樣的陣列和乙個整數,判斷這個陣列中有沒有這個整數 思路 方法一 暴力遍歷矩陣 matrix o n m 方法二 矩陣逆時針旋轉40 矩陣,得到二叉搜尋樹 根節點對應的是 7 3 這...