一開始其實我理解錯了題意(我經常沒能準確get題意,感覺審題的能力有待提高),看到每一行、每一列遞增,就腦補了每一行最後乙個比下一行第乙個要大; 一開始打算順序找到行,再去順序查詢/二分查詢在哪一列,理解錯了題意,這樣表面看好像即使理解錯了題意做出來也是對的,其實不然:比如說每一行第乙個元素都很小,直接定位到了最後一行,最後一行沒找到就返回了false,其實在之前幾行的後面列裡也可能有的。
所以按行查詢,再定位列,是不對的。從左下/右上角沿著某乙個方向搜尋,才是正確的方法。
c++程式如下:
我c++基礎太薄弱了,沒有了解過stl,連容器的概念都沒有,現查的菜鳥教程:需要在之後的空閒時間裡補一補c/c++語言和資料結構、演算法的基礎知識,這樣刷題才有學習的效果。
class solution
else if(array[row][colum]==target)
}return false;
}};
補:如果對每一行進行二分查詢,而不只是把每一行第乙個元素拿來二分查詢的話,還是可以的:
(二分查詢一開始還給寫錯了,迴圈條件寫成了left> array)
else}}
return false;
}};之前寫了一半的錯誤程式也在這裡記錄一下吧
class solution
left = 0;
right = array.size()-1;
while(left=array[i][0] && target…… //這是最開始沒想用二分查詢的時候準備用順序的方式先找行,再找列}}
};
Python 劍指offer(1)二維陣列的查詢
題目 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。環境python2.7.3 解 coding utf 8 class solution array 二維...
劍指offer 1 二維陣列查詢
在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。二維陣列是有序的,比如下面的資料 1 2 3 4 5 6 7 8 9可以直接利用左下角數字開始查詢 大於 比較...
劍指offer 1 二維陣列查詢
在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數 首先是先模擬獲取隨機遞增陣列 public static int getarray int n,int m 初...