C++编程例题:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有

题目描述

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


题目分析

每个一维数组长度相同,也就是说列数都是一样的。那我们通过array.size()得到行数,再通过array[0].size()得到列数就行,这里的array[0]可以是0,1,2,3随便你,因为每行的列数都一样~
之后再用两个for循环遍历array就行,找到和target一样的数就返回true,遍历完了都没找到就返回false。


代码实现

这道例题默认只要实现Find函数内部功能就行,其它的啥#include啊using namespace啊不用管。

class Solution {
public:
    bool Find(int target, vector<vector<int> > array) {
        int row = array.size();//获取行数
        int lie=array[0].size();//获取列数
        for (int i = 0; i < row; ++i) {
            for (int j = 0; j < lie; ++j) {
                if (array[i][j] == target) return true;//遍历二维数组,找到target就返回true
            }
        }
        return false;//遍历完了,无功而返,false
    }
};
发布了28 篇原创文章 · 获赞 36 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Clover_pofu/article/details/105456432