数据结构与算法分析 c++11 题2.27 找K是否在N*N 矩阵中
来源:互联网 发布:mac 查看所有进程 编辑:程序博客网 时间:2024/06/05 09:09
题目:
输入是一个N*N的数字矩阵并且已读入内存,每一行均从左到右递增,每一列从上到下递增,给出一个算法决定数m是否在该矩阵中
解析:从矩阵的右上角的元素开始,若m小于此元素,则向左移动到下一个元素,若m大于此元素,则向下移动,直到寻找到此元素。
#include <iostream>#include <vector>using namespace std;template<typename T, typename F>int searchWord(T arr,F aim){bool find = false;size_t row = 0;size_t column = arr.size() - 1;while (!find) {if ((row > arr.size() - 1) || (column < 0))return false;if (aim > arr[row][column]) {row++;}else if (aim < arr[row][column]) {column--;}else {find = true;}}//cout << "location: arr[" << row << "][" << column << "]" << endl;return find;}int main(){vector<vector<int>> vec = { {1,2,3,4,5,6}, {2,3,4,5,6,7}, {3,4,5,6,7,8}, {4,5,6,7,8,9}, {5,6,7,8,9,10}, {6,7,8,9,10,11} };cout << vec.size() << " "<<vec[0].size()<< endl;cout << "find K true or false : " << searchWord(vec,10) << endl;}
0 0
- 数据结构与算法分析 c++11 题2.27 找K是否在N*N 矩阵中
- 【数据结构与算法分析】1.1 找出N个数字中第K大的数
- 已知一个矩阵 A(m*n) 的元素每行每列都按从小到大有序, 试设计一个算法判断任一给定值 k 是否在矩阵 A(m*n) 中
- 【算法与数据结构】在n个数中取第k大的数(基础篇)
- 给定n*n的数字矩阵,每行从左到右是严格递增, 每列也是严格递增,判断k是否在这个矩阵中
- 数组与矩阵---在数组中找到出现次数大于一半(N/K)的数
- 数据结构与算法分析 2.20 编写一个程序来确定正整数N 是否是素数
- 【数据结构】【面试题】找N个数据中最大的K个数据
- java数据结构与算法分析学习(编写一个程序解决选择问题,k=N/2)
- N皇后问题(nQueue)、BackTracking、数据结构与算法分析
- 数据结构与算法[LeetCode]—Combinations 求1至n中所有K位数的所有组合
- 数据结构与算法[LeetCode]—Permutation Sequence 求n个数的全排列中第K个序列
- 算法设计与分析:第五章 回溯法 5.6找n个数中r个数的组合
- 矩阵找数--一个m*n的矩阵,从左到右从上到下都是递增的,给一个数x,判断x是否在矩阵中。要求效率尽可能的高。
- 找n个数字中第k小的元素
- 大顶堆,n个数中找最小的k个数
- 在一个长度为n(n < 1000)的整数序列中,判断是否存在某两个元素之和为k。
- wikioi 1008 在n个数中求K个数的和是否为素数
- 堆溢出利用
- Metronic4.7.5 下载 HTML5 UI后台管理框架
- BZOJ4044: [Cerc2014] Virus synthesis 回文自动机
- 面向对象成员变量和局部变量的区别
- 矩阵——hdu3306 Another kind of Fibonacci
- 数据结构与算法分析 c++11 题2.27 找K是否在N*N 矩阵中
- C语言--从指针到二级指针(下)
- LIS小程序小bug
- 我眼中的csdn
- JS原型与原型链终极详解
- 27. Remove Element
- Django 数据模型字段及属性
- 分类算法3----线性判别分析(LDA)原理和推导过程
- COM库中用于创建组件的三个函数