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

    题目


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

    代码


    class Solution
    {
    public:
        bool func(vector<vector<int>> arr, int val)
        {
            if(arr==nullptr)
                return false;
            return findNum(arr, 0, 0, val);
        }
    private:
        bool findNum(vector<vector<int>> arr, int x, int y, int val)
        {
            if (x < arr.size() && y < arr[0].size())
            {
                if (arr[x][y] == val)
                {
                    return true;
                }
                auto a = findNum(arr, x + 1, y, val);
                auto b = findNum(arr, x, y + 1, val);
                return a || b;
            }
            return false;
        }
    
    };

    思路


    利用递归的思路查找元素,从左上角第一个元素开始递归向右边和下边查找,假设矩阵的边长为n,时间复杂度为O(n),空间复杂度为O(n²)。

    https://github.com/li-zheng-hao
  • 相关阅读:
    jquery
    gulp 入门
    bower 教程
    webstrom管理git
    修改页面浏览器自动刷新
    兼容IE低版本
    js之触屏事件篇
    js之日期篇
    设置浏览器默认样式
    Listview四种视图VIEW
  • 原文地址:https://www.cnblogs.com/lizhenghao126/p/11053668.html
Copyright © 2011-2022 走看看