题解 | #矩阵元素查找#

矩阵元素查找

http://www.nowcoder.com/practice/3afe6fabdb2c46ed98f06cfd9a20f2ce

矩阵里面的元素是有序且无重复的:
首先看四个角,左上与右下必定为最小值与最大值,而左下与右上就有规律了:
右上元素大于它左方的元素,小于它下方的元素,左下元素相似。
我们可以在查找时使用二分法:
首先以右上角为起点,若是它小于目标元素,则往下移动去找大的,若是他大于目标元素,则往左移动去找小的。

class Solution {
public:
    vector<int> findElement(vector<vector<int> > mat, int n, int m, int x) {
        // write code here
        int r = 0, c = m - 1;
        vector<int> indx(2,0);
        while (r < n && c >= 0) {
            if (mat[r][c] == x) {
                indx[0] = r;
                indx[1] = c;
                break;
            }
            else if (mat[r][c] > x) {
                c--;
            }
            else {
                r++;
            }
        }
        return indx;
    }
};
全部评论

相关推荐

那么好了好了:他本来公司就是做这个的,不就是正常的游戏客户端和服务器开发,软硬件联动,有啥恶心不恶心的,提前告诉你就是怕你接受不了,接受不了就没必要再往后走流程浪费时间,虽然这公司是一坨。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务