編寫乙個高效的演算法來搜尋 m x n 矩陣 matrix 中的乙個目標值 target。該矩陣具有以下特性:
示例:
現有矩陣 matrix 如下:
[\quad
[1, 4, 7, 11, 15],
\quad
[2, 5, 8, 12, 19],
\quad
[3, 6, 9, 16, 22],
\quad
[10, 13, 14, 17, 24],
\quad
[18, 21, 23, 26, 30]
]給定 target = 5,返回 true。
給定 target = 20,返回 false。
思路:
從矩陣的負對角(左下角,右上角)開始搜尋,直至邊界:
例如從左下角開始搜尋,
**:
bool
searchmatrix
(vector
int>>
& matrix,
int target)
else
if(matrix[i]
[j]else
if(matrix[i]
[j]>target)
}return
false
;}
結果:
擴充套件:
你可以試試從右上角開始搜尋。
搜尋二維矩陣
寫出乙個高效的演算法來搜尋 m n矩陣中的值。這個矩陣具有以下特性 每行中的整數從左到右是排序的。每行的第乙個數大於上一行的最後乙個整數。樣例 考慮下列矩陣 1,3,5,7 10,11,16,20 23,30,34,50 給出 target 3,返回 true 思路一 最容易想到的一種解法就是兩層f...
搜尋二維矩陣
寫出乙個高效的演算法來搜尋 m n矩陣中的值。這個矩陣具有以下特性 樣例 考慮下列矩陣 1,3,5,7 10,11,16,20 23,30,34,50 給出target 3,返回true 解題思路 可以把這個矩陣,看成是乙個大的一維陣列,1,3,5,7,10,11,16,20,23,34,50。然後...
搜尋二維矩陣
二分查詢第一題 衝 先看題目 編寫乙個高效的演算法來判斷 m x n 矩陣中,是否存在乙個目標值。該矩陣具有如下特性 例 輸入 matrix 1,3,5,7 10,11,16,20 23,30,34,60 target 3 輸出 true 我的解法 public boolean searchmatr...