在行列都排好序的矩陣中找數

2021-09-29 10:39:52 字數 816 閱讀 9916

【題目】 給定乙個有n*m的整型矩陣matrix和乙個整數k,

matrix的每一行和每一 列都是排好序的。實現乙個函式,判斷k

是否在matrix中。 例如: 0 1 2 5 2 3 4 7 4

4 4 8 5 7 7 9 如果k為7,返回true;如果k為6,返

回false。

【要求】 時間複雜度為o(n+m),額外空間複雜度為o(1)。

解題思路:

(1)從矩陣最右上角的位置開始找

(2)比較當前數與k的關係:

(3)如果直到越界都沒有發現與k相等的數,則返回false

public

class

findnuminsortedmatrix

else

if(matrix[row]

[col]

> k)

else

}return

false;}

public

static

void

main

(string[

] args)

,// 0

,// 1

,// 2

,// 3

,// 4

,// 5

,// 6

// 7};

int k =

233;

system.out.

println

(iscontains

(matrix, k));

}}

在行列都排好序的矩陣中找數

暴力的話時間複雜度到了o n m 從資料狀況出發考慮還有一種解法 例 1 3 4 5 2 4 6 7 5 8 9 11 8 12 13 16 假如說是找6 我們從左下角開始走 一開始是8 比6大 那麼就不用考慮8的右面了 直接往上走 走到了5 5比6小 那麼5上面的都會比6小 向右走 走到了8 8比...

在行列都排好序的矩陣中找數

題目描述 給定乙個有n m的整型矩陣matrix和乙個整數k,matrix的每一行和每一列都是排好序的。實現乙個函式,判斷k是否在matrix中。例如 0 1 2 5 2 3 4 7 4 4 4 8 5 7 7 9 如果k為7,返回true,如果k為6,返回false。要求時間複雜度為o n m 額...

在行列都排好序的矩陣中找數

題目 給定乙個有n m的整型矩陣matrix和乙個整數k,matrix的每一行和每一 列都是排好序的。實現乙個函式,判斷k是否matrix中。若資料如下 如果k為7,返回true 如果k為6,返回false。要求 時間複雜度為o n m 額外空間複雜度為o 1 思路 從右下方最大值的地方開始找,先橫...