首页 > 编程知识 正文

牛客网,牛客

时间:2023-05-05 10:36:42 阅读:201431 作者:1070

题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 class Solution {public: bool Find(int target, vector<vector<int> > array) { //从右上角开始枚举 int i = 0, j = array[0].size() - 1; while(i < array.size() && j >= 0) { //目标数字大于当前位置的数字时,说明这一行不可能有符合要求的数, //因为当前行左边的数字更小,不用担心会漏掉右边数字的情况,因为 //是从右上方开始枚举的,模拟一下应该能想清楚 if(target > array[i][j]) { ++i; } //目标小于当前位置的数字时,说明这一列不可能有符合要求的数了, //因为当前列下面的数字更大(道理同上) else if(target < array[i][j]) { --j; } //找到目标数字 else return true; } return false; }};

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。