数据结构与算法程序员

面试题3 在二维数组中查找

2016-04-22  本文已影响439人  贾雨村甄士隐

题目链接:在二维数组中查找

我的思路

  1. 逐步缩小矩阵的范围,当矩阵缩小到一个数字的时候,看是否该数字是目标数字。是true,不是false。或者当矩阵的边界恰为目标数字的时候,是true。
  2. 缩小矩阵范围的方法:从矩阵的右上角开始看,当前数字大于目标数字,则目标数字不会在当前列,当前数字小于目标数字,则目标数字不会在当前行。
  3. 看图说话


    在二维数组中查找.png

实现代码

class Solution {
public:
    bool Find(vector<vector<int> > array,int target) {
        int row = array.size();
        int col = array[0].size();
        int i,j;
        for (i=0,j=col-1;i<row && j>=0;)
        {
            if (array[i][j] == target)
            {
                return true;
            }
            if (array[i][j] > target)
            {
                j--;
                continue;
            }
            if (array[i][j] < target)
            {
                i++;
            }
        }
        return false;
    }
};
上一篇下一篇

猜你喜欢

热点阅读