Leetcode---搜尋二維矩陣 II--O(m+n)
阿新 • • 發佈:2018-12-27
搜尋二維矩陣 II
題目連結:搜尋二維矩陣 II
思路:
由於四級考試耽擱了兩天更新,繼續堅持。
- 本題給出的矩陣有橫向數字增大,縱向數字增大的特徵,那麼根據這個特徵去尋找最佳答案。
- 我覺得還是很難想到的,我們從第一行的最右邊數字進行搜尋,如果相等則return true,若target大於該數字,則捨棄比該數小的數字,即可以舍掉當前所在的行,如果小於該數字,則舍掉該數所在的列
- 具體的捨棄行列操作可以利用下標控制
public boolean searchMatrix(int[][] matrix, int target) {
if (matrix==null||matrix.length==0||matrix[0].length==0) {
return false;
}
if(target<matrix[0][0]||target>matrix[matrix.length-1][matrix[0].length-1]) {
return false;
}
return searchMatrix(matrix,0,matrix[0].length-1,target);
}
public boolean searchMatrix(int[][] matrix,int row,int col, int target) {
while(row<=matrix.length-1&&col>=0) {
if(target==matrix[row][col]) {
return true;
}else if(target>matrix[row][col]) {
//切除行
++row;
}else {
--col;
}
}
return false;
}