題目
楊氏矩陣
有乙個二維陣列.
陣列的每行從左到右是遞增的,每列從上到下是遞增的.
在這樣的陣列中查詢乙個數字是否存在。
時間複雜度小於o(n);
示例陣列:
1 2 3
2 3 4
3 4 5
思路
建立 3*3為例 只能從右上方 或者左下方進行查詢 即 0 2或者2 0
目的 每次查詢時方向為一
方法 0 2 為例 行++或者列-- 直到查詢結束 找到返回乙個數沒找到返回乙個數
使用這種方法進行查詢顯而易見我們不用遍歷完整個陣列,當然時間複雜度也是小於o(n);
#include
#include
void
tofind
(int arr[
3],int row,
int col,
int ff,
int* pr,
int* pc)
if(arr[newrow]
[col-1]
if(arr[newrow]
[col -1]
== ff)
}printf
("%d\n",0
);}int
main()
,,};
int col =3;
int row =3;
int ff =10;
int* pc=
null
;int
* pr=
null
;tofind
(arr, row, col, ff,pr,pc)
;system
("pause");
return0;
}
楊氏矩陣查詢
題目為 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。例如下面的二維陣列就是每行 每列都遞增排序,如果在這個陣列中查詢數字6,則返回true 如果查詢數字10,由於陣列不含有該數字...
楊氏矩陣查詢
方案一 時間複雜度o m n 原理 從右上角開始 左下角相同 如果arr i j t,就向左查詢,如果arr i j 2013.7.23 0423 function 楊氏矩陣查詢 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個...
楊氏矩陣查詢
題目描述 楊氏矩陣,即在乙個二維陣列中,每一行都按照從左到右嚴格遞增的順序排序,每一列都按照從上到下嚴格遞增的順序排序。請完成乙個函式,輸入這樣的乙個 n n的二維陣列和 m個整數,判斷陣列中是否含有上述 m個整數。你能解決這個問題嗎?輸入格式 可能有多個測試輸入,第一行給出總共的測試輸入的個數。對...