其他分享
首页 > 其他分享> > 杨氏矩阵

杨氏矩阵

作者:互联网

在一个行和列都是依次递增的矩阵(这里是二维数组)中,如何设计一个时间复杂度为O(n)的算法,判断矩阵中是否存在元素x?

int find_x(vector<vector<int>> &m,int x){
    // 列数
    int c = m[0].size()-1;
    // 行数
    int r = 0;
    // 遍历数据的个数   -- 用来测试复杂度
    int t = 0;
    while(c <= m.size()-1 && r >= 0){
        if (x == m[r][c])
            return t;
        if (x > m[r][c]){
            r++;
            t++;
        }
        if (x < m[r][c]){
            c--;
            t++;
        }
        if (c<0 || r >= m.size())
            break;
    }
    return 0;
}

标签:return,int,复杂度,矩阵,++,杨氏,size
来源: https://www.cnblogs.com/nanfengnan/p/16515189.html