劍指offer題解 二維陣列中的查詢

2021-10-06 21:16:50 字數 1103 閱讀 3407

碼上生花,echarts 作品展示賽正式啟動!>>>

給定乙個二維陣列,其每一行從左到右遞增排序,從上到下也是遞增排序。給定乙個數,判斷這個數是否在該二維陣列中。

consider the following matrix:

[ [1, 4, 7, 11, 15],

[2, 5, 8, 12, 19],

[3, 6, 9, 16, 22],

[10, 13, 14, 17, 24],

[18, 21, 23, 26, 30]

]given target = 5, return true.

given target = 20, return false.copy to clipboarderrorcopied

要求時間複雜度 o(m + n),空間複雜度 o(1)。其中 m 為行數,n 為 列數。

解題思路於它的數一定在其下邊。因此,從右上角開始查詢,就可以根據 target 和當前元素的大小關係來縮小查詢區間,當前元素的查詢區間為左下角的所有元素。

跟著斷點走一遍思路非常清晰

package com.janeroad;

/** * created on 2020/4/27.

* * [@author]( ljn

*///給定乙個二維陣列,其每一行從左到右遞增排序,從上到下也是遞增排序。給定乙個數,判斷這個數是否在該二維陣列中。

public class test1

return false;

}public static void main(string args) ,,,,};

test1 test1=new test1();

system.out.println(test1.find(5,arr));

system.out.println(test1.find(10,arr));

system.out.println(test1.find(27,arr));}}

劍指offer 二維陣列

題目 在乙個二維陣列中每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。完成乙個函式,輸入這樣的陣列和乙個整數,判斷陣列中是否含有該整數。思路 由於該二維陣列從左到右,從上到下均為順序遞增的。因此右下角與左上角的數字均大於或小於其周圍數字,如果選擇改組作為起始點,則無法確定下一...

劍指offer 二維陣列中查詢

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

劍指offer 二維陣列中查詢

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