LintCode:搜索二维矩阵 II

来源:互联网 发布:smartpss监控软件下载 编辑:程序博客网 时间:2024/05/29 15:05

写出一个高效的算法来搜索m×n矩阵中的值,返回这个值出现的次数。

这个矩阵具有以下特性:

  • 每行中的整数从左到右是排序的。
  • 每一列的整数从上到下是排序的。
  • 在每一行或每一列中没有重复的整数。

您在真实的面试中是否遇到过这个题? 
Yes
样例

考虑下列矩阵:

[

    [1, 3, 5, 7],

    [2, 4, 7, 8],

    [3, 5, 9, 10]

]

给出target = 3,返回 2

挑战

要求O(m+n) 时间复杂度和O(1) 额外空间

标签 Expand  

相关题目 Expand 

解题思路:

从左下脚开始搜索即可

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        int res = 0;          if (null == matrix || 0 == matrix.length)               return res;          int row = matrix.length;          int colum = matrix[0].length;          int i = row - 1;          int j = 0;          while (i >= 0 && j < colum) {               if (target == matrix[i][j]) {                    res++;                    i--;                    j++;               } else if (target > matrix[i][j]) {                    j++;               } else {                    i--;               }          }          return res;           }}


0 0
原创粉丝点击