题目
写出一个高效的算法来搜索m×n矩阵中的值,返回这个值出现的次数。
这个矩阵具有以下特性:
每行中的整数从左到右是排序的。
每一列的整数从上到下是排序的。
在每一行或每一列中没有重复的整数。
解题
和判断一个数是否在这样的二维矩阵中一样,判断找到适合就结束了
这个题目有多个,找到一个的时候还要继续找,直到找完
public class Solution {
/**
* @param matrix: A list of lists of integers
* @param: A number you want to search in the matrix
* @return: An integer indicate the occurrence of target in the given matrix
*/
public int searchMatrix(int[][] matrix, int target) {
// write your code here
if(matrix == null)
return 0;
int row = matrix.length;
if(row ==0)
return 0;
int col = matrix[0].length;
int count =0;
int i=0;
int j=col-1; // 右上开始
while(i<row && j>=0){
if(matrix[i][j] > target){ // 大 列 -1
j--;
}else if(matrix[i][j]< target){ // 小 行+1
i++;
}else{ // 行+1 列-1,题目说明每行或者每列没有重复数
count++;
i++;
j--;
}
}
return count;
}
}
时间: 2024-10-17 10:12:52