題目:在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。
解題思路:
右上角的數字總是當前行最大且當前列最小的數字。所以我們從右上角開始找,如果目標數字比當前數字大,也就是說比當前數字所在行的所有數字都大,那麼行向下移動一行,如果目標數字比當前數字小,也就是說比當前數字所在列的所有數字都小,那麼列向左移動一列。這樣每次查詢都能縮小一行或者一列的範圍。
例如查詢:6
一. 右上角數字是5
1 | 3 | 4 |5
2 | 4 | 6 | 7
3 | 5 | 7 | 9
5 | 7 | 8 | 10
二. 6>5 排除5所在的行,也就是向下移動一行。此時右上角數字為7
1 | 3 | 4 | 5
2 | 4 | 6 |7
3 | 5 | 7 | 9
5 | 7 | 8 | 10
三. 6 < 7 排除7所在的列,也就是向左移動一列。。此時右上角數字為6
1 | 3 | 4 | 5
2 | 4 |6| 7
3 | 5 | 7 | 9
5 | 7 | 8 | 10
四. 6 == 6 找到~(≧▽≦)/~啦啦啦。
1 | 3 | 4 | 5
2 | 4 |6| 7
3 | 5 | 7 | 9
5 | 7 | 8 | 10
c++實現**如下:
bool find(vector
>
array,int target)
else
if(icurnum > target)
else
}return
false;
}
劍指offer 二維陣列中查詢
在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和一 個整數,判斷陣列中是否含有該整數。public class solution 因為陣列每一行都按照從左到右遞增的順序排序,每一列都按照從上到下...
劍指offer 二維陣列中查詢
從今天開始每天一題,除了節假日。在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。class solution return false class solut...
劍指offer 二維陣列中查詢
要求如下 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數 示例如下 7,1,2,8,9 2,4,9,12 4,7,10,13 6,8,11,15 思路有三種,...