在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。
時間限制:1秒 空間限制:32768k 熱度指數:29783
我的方法:從陣列每行第乙個元素開始判斷是否小於或等於目標值,若是就遍歷該行
難點備註:二維陣列判斷的條件
1public
class
solution 910
for(int i=0;!flag&i)16}
17}18}
1920
return
flag; 21}
22 }
優秀解法:
/* 思路矩陣是有序的,從左下角來看,向上數字遞減,向右數字遞增,因此從左下角開始查詢,當要查詢數字比左下角數字大時。右移 要查詢數字比左下角數字小時,上移*/www.nowcoder.com/questionterminal/abc3fe2ce8e146608e868a70efebf62e23
4class
solution
19if(target >array[i][j])
2024}25
return
false;26
}27 };
兩種思路
一種是:
把每一行看成有序遞增的陣列,
利用二分查詢,
通過遍歷每一行得到答案,
時間複雜度是nlogn
1public
class
solution 16}
17return
false;18
19}20 }
另外一種思路是:
利用二維陣列由上到下,由左到右遞增的規律,
那麼選取右上角或者左下角的元素a[row][col]與target進行比較,
當target小於元素a[row][col]時,那麼target必定在元素a所在行的左邊,
即col--;
當target大於元素a[row][col]時,那麼target必定在元素a所在列的下邊,
即row++;
1public
class
solution
13return
false;14
15}16 }
劍指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 思路有三種,...