牛客题霸 [矩阵元素查找] C++题解/答案

牛客题霸 [矩阵元素查找] C++题解/答案

题目描述

已知int一个有序矩阵mat,同时给定矩阵的大小n和m以及需要查找的元素x,且矩阵的行和列都是从小到大有序的。设计查找算法返回所查找元素的二元数组,代表该元素的行号和列号(均从零开始)。保证元素互异。

题解:

因为行和列都是有序的,所以两个变量一个表示行一个表示列
通过比较,先找到对应的列,再找到对应的行

代码:

class Finder {
public:
    vector<int> findElement(vector<vector<int> > mat, int n, int m, int x) {
        // write code here
        vector<int> res;
        if(n==0||m==0)
            return res;
        int i=0,j=m-1;
        while(i<n&&j>=0)
        {
            if(mat[i][j]>x)j--;
            else if(mat[i][j]<x)++i;
            else
            {
                res.push_back(i);
                res.push_back(j);
                break;
            }
        }
        return res;
    }
};
posted @ 2020-12-02 18:39  回归梦想  阅读(177)  评论(0编辑  收藏  举报