演算法筆記no 1之楊氏矩陣查詢

2021-10-03 03:03:47 字數 970 閱讀 7266

如題:

在乙個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。

時間小於等於2s 所佔記憶體小於等於64m

解題思路:

左下角開始與target整數比對 如果大於target 向上走 小於target向右走遍歷

利用從左到右遞增 從上到下遞增的特點。從左下角開始 只會越來越大或者越來越小不會分叉。

**奉上:

public

boolean

find

(int target,

int[

] array)

//array[m][n]即第m+1行 n+1列

int indexx = x-1;

//起始縱座標索引

int indexy =0;

//起始橫座標索引

//從左下角開始向右或者向上比對

return

docompare

(target, indexx, indexy, array)

;}

private

boolean

docompare

(int target,

int indexx,

int indexy,

int array[

])return

docompare

(target, indexx, indexy, array);}

else

if(target < array[indexx]

[indexy]

)return

docompare

(target, indexx, indexy, array);}

else

}

程式設計題 楊氏矩陣查詢演算法

原題出處 牛客網 雖然實際是選擇題,但我覺得歸類為程式設計題會更符合my feel。給定乙個m行n列的整數矩陣 如圖 每行從左到右和每列從上到下都是有序的。判斷乙個整數k是否在矩陣中出現的最優演算法,在最壞情況下的時間複雜度是o m n 由於行列都是有序的,因此可以通過判斷行列的極值降低時間複雜度。...

mysql之基礎安裝詳解筆記 no1

mysqld 設定3306埠 port 3306 設定mysql的安裝目錄 basedir c program files mysql mysql 8.0.13 winx64 設定mysql資料庫的資料的存放目錄 datadir c program files mysql mysql 8.0.13 ...

來玩二叉樹 NO 1 之遍歷演算法

樹是一種非線性的資料結構,相對於線性的資料結構 鍊錶 陣列 而言,樹的平均執行時間更短 往往與樹相關的排序時間複雜度都不會高 總結 順序結構主要有四種型別,順序表 陣列 鍊錶,佇列,棧 特殊的線性結構,棧是一種操作限定在表尾部進行的線性表,表尾稱為棧頂,另一端固定不動,稱為棧底 傳統的樹作為一種應用...