zoukankan      html  css  js  c++  java
  • 【Lintcode】038.Search a 2D Matrix II

    题目:

    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.

    题解:

    class Solution {
    public:
        /**
         * @param matrix: A list of lists of integers
         * @param target: An integer you want to search in matrix
         * @return: An integer indicate the total occurrence of target in the given matrix
         */
        int searchMatrix(vector<vector<int> > &matrix, int target) {
            if (matrix.empty() || matrix[0].empty()) {
                return 0;
            }
            
            int cnt = 0;
            int m = matrix.size(), n = matrix[0].size();
            
            for (int i = 0, j = n - 1; i < m && j >= 0; ) {
                if (matrix[i][j] == target) {
                    cnt++;
                }
                if (matrix[i][j] > target) {
                    --j;
                } else {
                    ++i;
                }
            }
            
            return cnt;
        }
    };
  • 相关阅读:
    100-days: twenty-four
    100-days: twenty-three
    100-days: twenty-two
    100-days: twenty-one
    100-days: twenty
    [NOI 2016]循环之美
    [NOI 2015]寿司晚宴
    [BZOJ 2655]calc
    [Codeforces 888G]Xor-MST
    [BZOJ 2839]集合计数
  • 原文地址:https://www.cnblogs.com/Atanisi/p/6821965.html
Copyright © 2011-2022 走看看