码迷,mamicode.com
首页 > 其他好文 > 详细

Search a 2D Matrix II

时间:2017-07-31 11:21:57      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:time   []   while   this   write   bottom   each   sid   sort   

矩阵非图题, 常根据题意找特点, 遍历, 判断, 不同的情况, 

Write an efficient algorithm that searches for a value in an m x n matrix, return the occurrence of it.

This matrix has the following properties:

Integers in each row are sorted from left to right.
Integers in each column are sorted from up to bottom.
No duplicate integers in each row or column.
Have you met this question in a real interview? Yes
Example
Consider the following matrix:

[
  [1, 3, 5, 7],
  [2, 4, 7, 8],
  [3, 5, 9, 10]
]
Given target = 3, return 2.

Challenge 
O(m+n) time and O(1) extra space

Tags 
Sorted Matrix Matrix Google
Related Problems 
Easy Search a 2D Matrix

 

public int searchMatrix(int[][] matrix, int target) {
        // write your code here
        if(matrix.length == 0 || matrix[0].length == 0){
            return 0;
        }
        
        int m = matrix.length - 1, n = matrix[0].length - 1;
        int count = 0;
        int i = m, j = 0;
        
        while (i >= 0 && j <= n){
            if (matrix[i][j] == target) {
                count++;
                i--;
                j++;
            } else if (matrix[i][j] < target){
                j++; 
            } else {
                i--;
            }
        }
        
        return count;
    }

  

Search a 2D Matrix II

标签:time   []   while   this   write   bottom   each   sid   sort   

原文地址:http://www.cnblogs.com/apanda009/p/7262096.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!