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

    剑指Offer:二维数组中的查找

    解题思路

    1. 题目中给定的数组是n*m,可知在遍历二维数组之前,是已知数组大小;
    2. 通过已知二维数组大小,寻找与给定值相等的数;
    3. 按照规律每行/每列元素大小不断增加,首列元素(a[n][0])如果已经大于查找值,那么后面元素一定大与该值,无需再查找。

    注:
    1). vec1.size() 就是”二维数组”的行数
    2). vec1[0].size() 就是”二维数组”的列数

    关键还是学习如何遍历vector二维数组。

    代码

    class Solution {
    public:
        bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) 
        {
            if (matrix.empty())
            {
                return false;
            }
            for (int i = 0; i < matrix.size(); i++)
            {
                for(int j = 0; j < matrix[0].size(); j++)
                {   
                    if(matrix[i][0] > target)
                    {
                        return false;
                    }
                    if(matrix[i][j]==target)
                    {
                        return true;
                    }
                }
            }
            return false;
        }
    };
    
  • 相关阅读:
    Java学习
    机器学习
    机器学习
    Java 学习
    哈希表复习
    [转] 数据库设计步骤
    Java
    c++的函数重载-笔记
    进程与线程-笔记
    内存知识-笔记
  • 原文地址:https://www.cnblogs.com/Tavi/p/12514048.html
Copyright © 2011-2022 走看看