1.剑指offer《二维数组查找》

1,在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数?

思路:从最左下角判断,注意数组越界,如果大于,就列加1;如果小于,就行减1;如果,等于,返回true;让其循坏查找,所以,要加上while,当遍历完了,都没有找到,返回false;

#include<iostream>
#include<vector>
using namespace std;

class Solution {
public:
    bool Find(int target, vector<vector<int> > array) {
        int rows=array.size();//vector 数组的行数,调用size(),即可得到
        int cols=array[0].size();//第一行的大小就是列的大小
        int i=rows-1;//数组是从0号下标开始的,所以需要减1
        int j=0;
        while(i>=0 && j<cols)//防止越界,使进入循坏,全部可以判断
        {
            if(target<array[i][j])//如果小于,就往上走
            {
                i--;
            }
            else if(target>array[i][j])//如果大于,就往右走
            {
                j++;
            }
            else
            {
                return true;
            }
        }
        return false;
    }
};

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

1.剑指offer《二维数组查找》

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭