剑指offer1: 组类型——二维数组中的查找(给定一个数字,查找是否在该数组中)
1. 思路:
缩小范围
2. 方法:
(1)要查找的数字等于数组中的数字,结束查找过程;
(2)要查找的数字小于数组中的数字,去除该数字右边的数字,在剩下的数字里查找;
(3)要查找的数字大于数组中的数字,去除该数字上边的数字,在剩下的数字里查找。
3. 图例
4. C++实现
#include <iostream>
#include <vector> using namespace std; class Solution {
public://类、公有成员、成员函数
bool Find(int target, vector<vector<int>> array) {//用vector类声明了一个二维数组对象array
int lrow = array.size();//.表示对象的成员运算符,array.size()表示的是array的行数
int lcol = array[].size();//array[0].size()表示的是第一行的列数
if (!array.empty() && rows> && cols>) {
int row = ;
int col = lcol - ;
while (row<lrow && col >= ) {
if (array[row][col] == target) {
cout << "find!" << endl;
return true;
}
else if (array[row][col] > target) {
--col;
}
else {
++row;
}
}
}
cout << "not find" << endl;
return false;
}
}; int main()
{
Solution answer;//声明了一个对象 int array_temp[][] = { ,,,,
,,,,
,,,,
,,,
}; int i, j;
int target=; vector<vector<int>> array();//声明了一个4行的二维动态数组
for (i = ; i < array.size(); i++)
{
array[i].resize();//重置array的每一行向量的元素个数,即每一行有多少列,这里都是4列
} for (i = ; i < array.size(); i++)
{
for (j = ; j < array[].size(); j++)
{
array[i][j] = array_temp[i][j];
}
} answer.Find(target, array);//这个类对象调用类的成员函数
getchar(); return ;
}
参考资料
https://blog.csdn.net/happiness_llz/article/details/82530668
剑指offer1: 组类型——二维数组中的查找(给定一个数字,查找是否在该数组中)的更多相关文章
- 剑指offer:2.二维数组的查找(Java版)
备注:本文参照<剑指offer第二版> 题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数, 输入这样的一个二维数组和一个整数 ...
- 剑指offer(一):二维数组中的查找
说明: 1.本系列是根据<剑指Offer>这个系列做的一个小笔记. 2.直接动力是因为师兄师姐找工作很难,而且机械出生的我面试算法更难. 3.刚开始准备刷LeetCode.LintCode ...
- 剑指offer一:二维数组中的查找
题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 思路: 这是一个顺序二维 ...
- 《剑指Offer》之二维数组中的查找
1.题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 2.代码实现 pu ...
- 剑指 offer set 1 二维数组中查找
总结 1. 二维数组搜索题遇到两个了, 一个是 Leetcode 上 search in 2D matrix. 那道题比较简单, 因为下一行的所有元素大于上一行的. 这道题对二维矩阵的要求比较松, 起 ...
- 剑指offer-面试题3.二维数组中的查找
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增 的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断该数组中是否有该整数. 算法流程如下: 比如一个 ...
- 剑指offer 01:二维数组中的查找
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...
- 【剑指offer】规则二维数组查找
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 思路: ...
- 剑指offer一之二维数组中的查找
一.题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 二.解答方法: 方法 ...
随机推荐
- windows游戏编程 绘图基础
本系列文章由jadeshu编写,转载请注明出处.http://blog.csdn.net/jadeshu/article/details/22451353 作者:jadeshu 邮箱: jades ...
- AGC024E Sequence Growing Hard
题意 给出\(n\),\(m\),\(mu\),问有多少个序列组\((A_0,A_1,\dots,A_n)\)满足: 序列\(Ai\)的长度恰好为\(i\) 所有元素均在\([1,m]\) \(A_{ ...
- Golang的文件处理方式-常见的读写
在 Golang 语言中,文件使用指向 os.File 类型的指针来表示的,也叫做文件句柄.注意,标准输入 os.Stdin 和标准输出 os.Stdout ,他们的类型都是 *os.File 哟.在 ...
- java安全学习-Code-Breaking Puzzles-javacon详细分析
本文首发于合天智汇: https://mp.weixin.qq.com/s/XWpe3OGwH1d9dYNMqfnyzA 0x01.环境准备 需要反编译的jar包如下所示 直接通过以下步骤将jar文件 ...
- MyBatis错误:The server time zone value '?泄???????' is unrecognized or represents more t
原文地址:http://blog.csdn.net/oppo5630/article/details/52162783 解决java.sql.SQLException: The server time ...
- sqlserver 锁表进程及执行的SQL
--1.查进程select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableNamefrom sys.d ...
- centos7 安装 mysql(在线安装)
在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB. 1 下载并安装MySQL官方的 Yum Re ...
- Vue于React特性对比(三)
最近重学React,再次和vue做了对比. 一,为官方插件提供便利的第三方插件横行 React仅仅是一个ui框架.虽然官方提供了redux,react-router:但也有第三方的redux-thun ...
- kotlin 之单表达式函数
fun d(x:Int):Int=x* 如果函数体只有一条语句,而且是return语句,那么可以省略大括号以及return关键字,
- Unix/Linux下如何查看DNS服务器地址
使用命令: cat /etc/resolv.conf 或者 less /etc/resolv.conf 即可. 详细请见:http://www.cyberciti.biz/faq/how-to-fin ...