有序二維陣列中查詢

2021-06-26 17:52:24 字數 621 閱讀 9132

題目

在乙個n*n二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。

請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。

舉例1

2342

3473

4784

589 找6,false

找5,true

分析

找6,從右上角開始 (也可以左下角)

右上角為[0,3] 因為4小於6,所以第0行被排除,下移。

右上角為[1,3] 因為7大於6,所以第3列被排除,左移。

右上角為[1,2] 因為4小於6,所以第1行被排除,下移。

右上角為[2,2] 因為7大於6,所以第2列被排除,左移。

右上角為[2,1] 因為4小於6,所以第2行被排除,下移。

右上角為[3,1] 因為5小於6,所以第3行被排除,下移。

此時出界,返回false。

複雜度o(n)

下移就是行++,左移就是列--

[行, 列]

相似題目

有序二維陣列的查詢

劍指offer原題,陣列從左到右,從上到下遞增,給定乙個數target找出這個數是否在該有序二維陣列裡面。找到的話返true,否則返回false。題目比較簡單就簡單說說思路,利用二維陣列的特性,我們把陣列看做乙個矩陣,從矩陣的右上角元素a i,j 開始找,如果a i,j target,則target...

在查詢有序二維陣列中查詢元素

解題思路 實現 public class sortedmatrixelementfinder return true private static class sortedmatrix public void excludethisrow public boolean islegalindex pu...

3 在有序二維陣列中查詢元素

題目描述 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。解析 由於每一行是遞增的,每一列是遞增的,當遇到行列均有序時,除了考慮從左上角開始遍歷時,應該有從右上或者左下開始遍歷的新思...