劍指Offer04 二維陣列中的查詢 BST

2022-05-20 20:55:15 字數 487 閱讀 1478

原題鏈結

思路:這題乍看上去好像是乙個二分,其實上有更優的解法,由於從右上角往左下角看剛好是一顆二叉搜尋樹的形狀,因此可以把這個二維陣列看作是乙個bst,因此解法就是bst的查詢功能在此陣列中的實現,將右上角元素看為根節點,從根節點開始,如果當前元素小於目標元素則找他的左子樹,大於則找他右子樹,否則就說明找到了,如果一直到陣列越界都沒有找到說明bst中不存在這個數。

參考**

1

public

boolean findnumberin2darray(int matrix, int

target)

7boolean flag = false;8

int x = maxx - 1, y = 0;

9while(x >= 0 && y

if(matrix[y][x]

19return

flag;

20 }

view code

劍指offer04 二維陣列查詢

在乙個 n m 的二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。測試示例 矩陣 matrix 如下 begin 1 2 8 9 2 4 9 12 4 7 10 13 6 8 11 15 ...

劍指Offer04 二維陣列中的查詢

在乙個 n m 的二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個高效的函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。現有矩陣 matrix 如下 1,4,7,11,15 2,5,8,12,19 3,6,9,16,22 10,13,1...

劍指 Offer 04 二維陣列中的查詢

在乙個 n m 的二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。遍歷陣列 時間複雜度 o nm 空間複雜度o 1 從二維陣列的右上角開始查詢。如果當前元素等於目標值,則返回 true。如...