1. 程式人生 > >Search a 2D Matrix II

Search a 2D Matrix II

space val ear 情況 row pac interview sid turn

矩陣非圖題, 常根據題意找特點, 遍歷, 判斷, 不同的情況,

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