zoukankan      html  css  js  c++  java
  • item3 二维数组中的查找[剑指offer]

    题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。

    请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有这个整数?

    1    2    8  9
    2    4    9    12
    4    7    10    13
    6    8    11    15

    思路:查找7

    从右上角的数组开始判断:9>7,又因为每一列从上到下递增,所以这一列淘汰

    1    2    8  9
    2    4    9    12
    4    7    10    13
    6    8    11    15

    接着第三列也被排除

    1    2    8  9
    2    4    9    12
    4    7    10    13
    6    8    11    15

    现在右上角为2<7

    那么把2所在的行排除掉了    

    1    2    8  9
    2    4    9    12
    4    7    10    13
    6    8    11    15

    =========

    又因为4<7,将4所在的行排除

    1    2    8  9
    2    4    9    12
    4    7    10    13
    6    8    11    15

    ===========

    最后右上角的数字就是7了,找到了,返回。

    =========

    代码:

    class Offer{
    public:
        bool find_matrix(vector<vector<int> > matrix,int target){
            int cloums = matrix.size();//hang shu
            if(cloums ==0){
                return false;
            }
            int rows = matrix[0].size();//lie shu
    
            int c = 0;
            int r = rows-1;
            while(r>=0 && c<=cloums-1){
                if(matrix[c][r]==target){
                    cout<<"matrix["<<c<<"]["<<r<<"]"<<endl;
                    return true;
                }
                else if(matrix[c][r] > target) r--;
                else c++;
            }
            return false;
        }
    };
  • 相关阅读:
    tmp:算法数据结构
    [转]Open Live Writer 配置
    GCC ,Clang 与 make,cmake 一览
    概率统计(1):数据分布
    ISP基础(31):Lost Frame Strategy
    支付宝对接授权及加好友
    css实现定宽高比(非内容撑出)
    display:table实现多列等高布局
    vue挂载全局组件
    两个数组根据指定字段去重
  • 原文地址:https://www.cnblogs.com/li-daphne/p/5612061.html
Copyright © 2011-2022 走看看