关闭

《剑指offer》二维数组中的查找

标签: 二维数组中的查找剑指offer
387人阅读 评论(0) 收藏 举报
分类:

一、题目描述

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

二、输入描述

array: 待查找的二维数组
target:查找的数字

三、输出描述

查找到返回true,查找不到返回false

四、牛客网提供的类框架

class Solution {
public:
    bool Find(vector<vector<int> > array,int target) {

    }
};

五、解题思路

这道题类似于一维数组的二分查找。由题目可知矩阵是有序的,从左下角看,向上是递减,向右是递增(也可以从右上角看,向左是递减,向下是递增)。

所以从左下角开始或者从右上角开始查找。对于从左下角开始,当查找位置的数比要查找的数大,如果矩阵中该数存在,那么它将在该位置的上方,所以y坐标–;相反如果现在的位置上的书比要查找的数小,那么它将在该位置的右方,所以x坐标++。当所查找的位置超过矩阵的坐标范围,查找失败(数组中不存在该数)。同样也可以通过右上角开始查找。

六、代码

class Solution {
public:
    bool Find(vector<vector<int> > array,int target) {
        int row, column, i, j;
        row = array.size();
        column = array[0].size();
        i = row - 1;
        j = 0;
        while(i >= 0 && j <= column -1)
        {
            if(array[i][j] < target)
            {
                j++;
            }
            else if(array[i][j] > target)
            {
                i--;
            }
            else{
                return true;
            }
        }
        return false;

    }
};
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

剑指offer 面试题3:二维数组(矩阵)中数的查找(leetcode 74. Search a 2D Matrix) 题解

剑指offer 面试题 二维数组中的查找 提交网址: http://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e?tpI...
  • yanglr2010
  • yanglr2010
  • 2016-04-23 20:30
  • 1197

剑指Offer——二分查找算法

剑指Offer——二分查找算法前言     本片博文主要讲解查找算法的相关知识。重点介绍二分查找。     二分查找算法是在有序数组中用到的较为频繁的一种算法,在未接触二分查找算法时,最通用的一种做法...
  • sunhuaqiang1
  • sunhuaqiang1
  • 2016-08-03 11:50
  • 42876

剑指Offer(java答案)

剑指Offer(java答案)剑指Offerjava答案 5从尾到头打印链表 6重建二叉树 33把数组排成最小的数 34丑数 35第一个只出现一次的字符 36数组中的逆序对 37两个链表的第一个公共交...
  • sinat_29912455
  • sinat_29912455
  • 2016-04-12 21:23
  • 4744

剑指offer之面试题3:二维数组的查找

题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。输入描述: array: ...
  • sushauai
  • sushauai
  • 2016-04-11 20:18
  • 258

剑指Offer 面试题3 二维数组中查找

剑指Offer 面试题3 二维数组中查找      参加鹅厂实习生笔试,在算法上被虐惨,做项目花了大部分时间,算法能力没能提高,迫切需要提高算法能力。遂收集各种面试题,刷刷算法。       本文参考...
  • wp1603710463
  • wp1603710463
  • 2016-04-07 21:03
  • 1054

剑指offer-二维数组中的查找

问题题目:[二维数组中的查找]思路蛮力法肯定可以做。 但是考虑有序的特性,所以,二分查找。 但是,我做的是否还是犯了错误。那证明这题出的很成功嘛! 因为我是认为这个数组是这样的: 1.0 2....
  • Kang_TJU
  • Kang_TJU
  • 2017-02-12 21:03
  • 218

剑指offer面试题:二维数组中的查找

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 分析:看到这个问题,我们...
  • L_XRUI
  • L_XRUI
  • 2016-06-18 16:20
  • 485

剑指offer面试题3:二维数组中的查找 java实现

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

【剑指offer】面试题 4:二维数组中的查找

题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 时间限...
  • Jinlong_Xu
  • Jinlong_Xu
  • 2017-06-20 23:53
  • 181

剑指offer 1384 二维数组中的查找

#include int binary_search(int a[],int l,int r,int t){ int begin=l; int end=r; while(beg...
  • xiaohunuli
  • xiaohunuli
  • 2014-07-16 16:22
  • 139
    个人资料
    • 访问:82104次
    • 积分:1552
    • 等级:
    • 排名:千里之外
    • 原创:75篇
    • 转载:0篇
    • 译文:0篇
    • 评论:19条
    友情链接
    最新评论