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: 组类型——二维数组中的查找(给定一个数字,查找是否在该数组中)的更多相关文章

  1. 剑指offer:2.二维数组的查找(Java版)

    备注:本文参照<剑指offer第二版> 题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数, 输入这样的一个二维数组和一个整数 ...

  2. 剑指offer(一):二维数组中的查找

    说明: 1.本系列是根据<剑指Offer>这个系列做的一个小笔记. 2.直接动力是因为师兄师姐找工作很难,而且机械出生的我面试算法更难. 3.刚开始准备刷LeetCode.LintCode ...

  3. 剑指offer一:二维数组中的查找

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

  4. 《剑指Offer》之二维数组中的查找

    1.题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 2.代码实现 pu ...

  5. 剑指 offer set 1 二维数组中查找

    总结 1. 二维数组搜索题遇到两个了, 一个是 Leetcode 上 search in 2D matrix. 那道题比较简单, 因为下一行的所有元素大于上一行的. 这道题对二维矩阵的要求比较松, 起 ...

  6. 剑指offer-面试题3.二维数组中的查找

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

  7. 剑指offer 01:二维数组中的查找

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

  8. 【剑指offer】规则二维数组查找

    在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 思路: ...

  9. 剑指offer一之二维数组中的查找

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

随机推荐

  1. Are Lights Still On?

    不知不觉成为一名OIer已经接近一年了,但真正开始认真对待还是这个暑假,从当初的信心百倍,踌躇满志,到现在陷入了迷茫. 我不知道自己是否真的热爱OI这项事业,可我不愿放弃:我也不知道自己还有没有继续学 ...

  2. Redis使用Docker镜像安装

    详细见本人以下文档: https://www.cnblogs.com/zyc-blogs/p/9621727.html

  3. 一个简单的puppeteer爬虫

    const puppeteer = require("puppeteer"); const path = require('path'); const pathToExtensio ...

  4. docker 容器连接 host的sql server失败

    报错内容::“A network-related or instance-specific error occurred while establishing a connection to SQL ...

  5. sqlserver 锁表进程及执行的SQL

    --1.查进程select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableNamefrom sys.d ...

  6. golang sqlx查询时, struct字段冲突

    type TA struct { Id int64 `db:"id"` } type TB struct { Id int64 `db:"id"` } type ...

  7. PHP魔术方法和魔法变量详解

    一.魔术常量 __LINE__ 文件中的当前行号.__FILE__ 文件的完整路径和文件名.如果用在被包含文件中,则返回被包含的文件名. 自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对 ...

  8. P3015 [USACO11FEB]最好的括号Best Parenthesis

    P3015 [USACO11FEB]最好的括号Best Parenthesis 题解 一定要开 long long !!! 通过阅读英文题面我们知道所给出的字符串是已经匹配好的,所以我们只是计算就好了 ...

  9. Rect和RectF函数

    1.是否包含点,矩形 判断是否包含某个点 boolean contains(int x,int y)  函数用于判断某个点是否在当前矩形中,如果在,则返回true ,不在则false 2.判断是否包含 ...

  10. 数据分析 - sql 业务相关练习题

    数据库    userinfo , orderinfo 表 两个 userId 彼此对应 题目 解题 不同月份的下单人数 用户在同一个月份会下多个单,这里进行去重 未支付的脏数据去除 统计用户三月份的 ...