您的位置:首页 > 编程语言 > C语言/C++

二维数组中的查找 C++

2016-07-11 16:31 225 查看


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

代码
class Solution {
public:
bool Find(vector<vector<int> > array, int target) {
int i, j, m, n;
m = array.size();
n = array[0].size();
i = 0;
j = n-1;
bool flag = true;
while (flag && (i <=m-1) && (j >= 0))
{
if (array[i][j] > target)
{
j--;
continue;
}
if (array[i][j] < target)
{
i++;
continue;
}
if (array[i][j] == target)
{
flag = false;
break;
}
}
if (flag == true) return false;
else return true;
}
};
个人总结
这里有三个地方需要注意:
1)用vector表示二位数组的表示方法:
<pre code_snippet_id="1756311" snippet_file_name="blog_20160711_1_1545247" name="code" class="cpp">vector<vector<int> > array <span style="font-family: Arial, Helvetica, sans-serif;">注意> >的之间需要有一个空格,以区分于>>。</span>



array.size()求得是行数
array[0].size()求的是列数
2)15行以及20行的continue必须加上,因为已经改变了i或者的j的值以后,会影响后面if语句判断array[i][j]的情况。所以必须添加continue语句。
3)注意这道题的解题思路。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: