本文实例讲述了C++二维数组中的查找算法。分享给大家供大家参考,具体如下:
一、问题:
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
二、实现代码:
#include <iostream> #include <vector> using namespace std; bool Find(int target, vector<vector<int> > array) { int row = array.size(); //行数 int column = array[0].size(); //列数 int i = 0, j = column - 1; while (i < row && j >= 0) { if (array[i][j] == target) //从右上角第一个找起,大于target向左查找,小于target则向下查找 { return true; } else if (array[i][j] > target) { j--; //向左查找 } else { i++; //向下查找 } } return false; } int main() { vector<int> vec1{ 3, 7, 9, 12, 19, 23 }; vector<int> vec2{ 4, 17, 19, 31, 32, 33 }; vector<vector<int> > array; array.push_back(vec1); array.push_back(vec2); bool result = Find(32, array); cout << "result = " << result << endl; system("pause"); }
希望本文所述对大家C++程序设计有所帮助。
本文向大家介绍C#实现的二维数组排序算法示例,包括了C#实现的二维数组排序算法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#实现的二维数组排序算法。分享给大家供大家参考,具体如下: 运行结果: 更多关于C#相关内容感兴趣的读者可查看本站专题:《C#数组操作技巧总结》、《C#遍历算法与技巧总结》、《C#程序设计之线程使用技巧总结》、《C#中XML文件操作技巧汇总》、《C#常见控件用
本文向大家介绍C语言二维数组中的查找的实例,包括了C语言二维数组中的查找的实例的使用技巧和注意事项,需要的朋友参考一下 C语言二维数组中的查找的实例 题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 思路描述:一个数字的下方和右方是比它本身大的区域,而左方和上方时比它本身小
题目链接 牛客网 题目描述 给定一个二维数组,其每一行从左到右递增排序,从上到下也是递增排序。给定一个数,判断这个数是否在该二维数组中。 // html Consider the following matrix: [ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17,
一、题目 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 二、解题思路 首先选取数组中右上角的数字。如果该数字等于要查找的数字,查找过程结束。 如果该数字大于要查找的数字,剔除这个数字所在的列:如果该数字小于要查找的数字,剔除这个数字所在的行。 也就是说如果要查找的数字不在数组的
问题内容: 是否有一种简单的方法来查找二维数组中某个元素的邻居(即,元素周围的八个元素)?缺少只是以不同的组合减去和增加索引,像这样: … 等等。 问题答案: (伪代码) 当然,这几乎要花费原始硬编码解决方案的许多行,但是通过这一解决方案,您可以最大程度地扩展“邻居”(2-3个或更多单元格)
问题内容: 我正在一个项目中,我必须读取文件并将内容输入2D数组。然后,我必须对每一行,每一列和矩阵的周长求和。到目前为止,除外围功能外,我一切正常。我正在尝试为两个外部列的顶行,底行和中间创建单独的for循环。 矩阵文件如下所示: 因此,周长总计应为42。现在,我可以成功地将第一行和最后一行添加为等于22。但是,当我将列添加到总数中时,我得到32。 这是代码: 如果有人可以帮助我将第一列和最后一