1. 題目
編寫一個高效的算法來搜索 m x n 矩陣 matrix 中的一個目標值 target 。該矩陣具有以下特性:
每行的元素從左到右升序排列。
每列的元素從上到下升序排列。
示例 1:
輸入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5
輸出:true
示例 2:
輸入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 20
輸出:false
2. 題解
class Solution {public boolean searchMatrix(int[][] matrix, int target) {int i = 0;int j = matrix[0].length - 1; //從右上角開始while (i < matrix.length && j >= 0){ //還有剩余元素if(matrix[i][j] == target){return true; //找到target}if(matrix[i][j] < target){i++; //這一行剩余元素全部小于target,排除} else{j--; //這一列剩余元素全部大于target}}return false;}
}
3. 解析
出自這位老師:靈茶山艾府:【圖解】排除法,一圖秒懂!(Python/Java/C++/C/Go/JS/Rust)
這位老師簡直就是甜菜!!!