二維陣列的查詢

2021-09-12 14:24:15 字數 730 閱讀 3950

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

實現**:

public boolean find(int target,int  array) 

else if(array[j][i] > target)

else

} return false;

}

思路:因為給定的二維陣列是有序的,所以沒有必要直接進行整個二維陣列的遍歷,如果直接進行for迴圈遍歷進行逐個比較的話,查詢效率很低,所以可以根據橫向縱向下標同時改變的思路來進行查詢給定的值 target,

假定陣列為上圖所示,則 初始化 j = 2,i = 0,進行比較 array[2][0] 與 target 的大小,如果 array[2][0] < target 則 i +1 進行 比較 array[2][1] 與 target 的大小,反之則 j -1 進行比較 array[1][0] 與 target 的大小,如果  if 條件和 else if 都不滿足,則必定  array[j][i] = target,即找到了與target相等值,return true 。如果比較了整個陣列沒有找到相等的值,return false;

二維陣列查詢

近日微博上看到乙個題目,二維陣列查詢 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。例如下面的二維陣列就是每行 每列都遞增排序。如果在這個陣列中查詢數字7,則返回true 如果查詢...

二維陣列查詢

天氣變化大,生病折騰了1個禮拜,寫篇部落格壓壓驚。題目源自於清明假期前夕舍友春招的筆試題,後來得知是劍指offer上的一道題,書上應該有解題思路啥的。題目重述 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,...

二維陣列查詢

題目描述 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請 完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。解題思路 按照一般搜尋二維陣列的方法,從左到右,從上到下,比較難根據這個陣列的特點進行快速搜尋。可以從 右到左,從上到下,...