1. 程式人生 > >Leetcode---搜尋二維矩陣 II--O(m+n)

Leetcode---搜尋二維矩陣 II--O(m+n)

搜尋二維矩陣 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; }