Leetcode 240 Search a 2D Matrix II

典型老题,从右上角开始搜索,往下是增往左是减。
比如.
[[1 4],
[2 5]]
右上角元素即4

ir是行标,ic是列标
假设target是2, target < 4, ic--
target > 1, ir++
target == 2,找到

class Solution {
public:
    bool searchMatrix(vector<vector<int>>& matrix, int target) {
        int n_row = matrix.size();
        if (n_row == 0)
            return false;
        int n_col = matrix[0].size();
        if (n_col == 0)
            return false;
        int i = 0;
        int j = n_col - 1;
        while (0 <= i  && i < n_row && 0 <= j  && j < n_col) {
            if (target == matrix[i][j])
                return true;
            else if (target < matrix[i][j])
                j--;
            else
                i++;
        }
        return false;
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容