public class Solution { /** * O(m + n) 时间复杂度 */ public int searchMatrix(int[][] matrix, int target) { if(matrix == null || matrix.length == 0) return 0; if(matrix[0] == null || matrix[0].length == 0) return 0; int m = matrix.length; int n = matrix[0].length; //每次观察右上角的点 int cur_i = 0; int cur_j = n - 1; int sum = 0; while(cur_i<m && cur_j >= 0){ if(matrix[cur_i][cur_j] == target){ sum ++; cur_j --; //该列不可能再有满足条件的了 }else if(matrix[cur_i][cur_j] > target){ cur_j --; //该列不可能再有满足条件的了 }else{ cur_i ++;//该点比目标点小,说明该行不可能有满足条件的了 } } return sum; } }
[LintCode] 38. Search a 2D Matrix_II
猜你喜欢
转载自blog.csdn.net/js54100804/article/details/80178511
今日推荐
周排行