题目描述
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
【分析:以左下为起点,往上元素数值递减,往右元素数值递增。】
bool Find(int target, vector<vector<int> > array) {
const int l = array[0].size();//列数
const int h = array.size();//行数
if (l == 0 || h == 0)
return false;
int i, j;
i = h - 1;
j = 0;
while (i >= 0 && j<l)
{
if (target < array[i][j])
i--;
else if (target > array[i][j])
j++;
else
return true;
}
return false;
}
问题的分析思路源自该文: 点击打开链接 http://www.cnblogs.com/codingmengmeng/p/5857217.html
本文介绍了一种在特定排序规则下的二维数组中查找指定整数的方法。通过从数组的左下角开始,利用数值递增特性逐步逼近目标值,实现高效搜索。
441

被折叠的 条评论
为什么被折叠?



