題目鏈結
題目給出了乙個二維陣列,行從上到下遞增,列從左到右遞增。
給出乙個目標數,來查詢該目標數是否存在於這個二維陣列中。
很直接的想法就是由兩個二分查詢來組成,但是這樣的想法會存在明顯的問題
1 32 4
對於這樣的2*2的陣列,查詢3這個元素,如果先對第一列元素進行二分查詢,很明顯就找不到3這個元素了。
這裡給出乙個簡單的演算法。
#include #include #include #include using namespace std;
int arr[1005][1005];
int m,n,t;
bool bfind(int x,int y)
return false;
}int main()
{ int i,j;
while(scanf("%d%d",&m,&n)!=eof)
{ scanf("%d",&t);
memset(arr,0,sizeof(arr));
for(i = 1;i <= m ;i++)
for(j = 1;j <= n;j++)
scanf("%d",&arr[i][j]);
if(bfind(1,n))
cout<<"yes"<
劍指offer全套解答 劍指offer 1 5
1.二維陣列中的查詢 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。public class solution int n array 0 length i...
劍指offer全套解答 劍指offer 36 45
36.兩個鍊錶的第乙個公共節點 輸入兩個鍊錶,找出它們的第乙個公共結點。注意因為傳入資料是鍊錶,所以錯誤測試資料的提示是用其他方式顯示的,保證傳入資料是正確的 public class solution return p 37.數字在排序陣列 現的次數 統計乙個數字在公升序陣列 現的次數。publi...
劍指offer全套解答 劍指offer 46 55
46.孩子們的遊戲 圓圈中最後剩下的數 每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。hf作為牛客的資深元老,自然也準備了一些小遊戲。其中,有個遊戲是這樣的 首先,讓小朋友們圍成乙個大圈。然後,他隨機指定乙個數m,讓編號為0的小朋友開始報數。每次喊到m 1的那個小朋友要出...