簡單楊氏矩陣查詢方法

2021-09-29 11:52:32 字數 945 閱讀 8450

題目

楊氏矩陣

有乙個二維陣列.

陣列的每行從左到右是遞增的,每列從上到下是遞增的.

在這樣的陣列中查詢乙個數字是否存在。

時間複雜度小於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個整數。你能解決這個問題嗎?輸入格式 可能有多個測試輸入,第一行給出總共的測試輸入的個數。對...