每日一题 剑指offer(二维数组中的查找)

编程是很多偏计算机、人工智能领域必须掌握的一项技能,此编程能力在学习和工作中起着重要的作用。因此小白决定开辟一个新的板块“每日一题”,通过每天一道编程题目来强化和锻炼自己的编程能力(最起码不会忘记编程)

特别说明:编程题来自“牛客网”和“领扣”以及热心小伙伴的题目。由于小白有时想锻炼某一类编程方法,所以提供的代码不一定是最优解,但是本文提供的编程代码均为通过测试代码。

二维数组中的查找

题目描述

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

解析

矩阵是有序的,从左下角来看,向上数字递减,向右数字递增,因此从左下角开始查找,当要查找数字比左下角数字大时。右移要查找数字比左下角数字小时,上移。

代码

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

相关推荐

  • ​LeetCode刷题实战238:除自身以外数组的乘积

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • Python编程语言学习:批量对array数组数据按照条件限制进行替换、修改

    Python编程语言学习:批量对array数组数据按照条件限制进行替换.修改 更新-- 批量对array数组数据按照条件限制进行替换.修改 代码设计 import numpy as np array_ ...

  • 矩阵与矩阵乘积简介

    向量是存储和操作数据的一种有用的方法,可以用箭头或数字数组来表示它们.然而,创建更复杂的数据结构是有帮助的,这正是需要引入矩阵的地方. 介绍 矩阵是正方形或矩形数组,包含两个维度:行和列,我们可以把它 ...

  • Excel一维数组转二维数组的方法

    excel使用技巧大全在前面我们已经讲过,读取数组中的数据都是连续的.但有时,一些数据是不连续的.这时我们应该怎么办呢? 例如,许多格式相同的sheet要合并在一起.我们想看每一个sheet的数据.此 ...

  • LeetCode面试系列 第12天:No.977 - 有序数组的平方

    上一篇 LeetCode 面试题中,我们分析了一道集合相关的数学题.现在我们再来看一个排序相关的面试题吧~ Leetcode 今天要给大家分析的面试题是 LeetCode 上第 977 号问题, Le ...

  • 学会这两招,PLC编程也可以批量化定义变量-数组、结构

    数组 简单的说,就是多个相同类型数据一定顺序排列的集合,使用一个名字命名,并通过编号的方式对这些数据统一管理. 在PLC编程过程中,我们也经常遇到同类型的变量需要定义,例如10台电机的电流值,如果不使 ...

  • 每日一题 剑指offer(调整数组顺序)

    编程是很多偏计算机.人工智能领域必须掌握的一项技能,此编程能力在学习和工作中起着重要的作用.因此小白决定开辟一个新的板块"每日一题",通过每天一道编程题目来强化和锻炼自己的编程能力 ...

  • 每日一题 剑指offer(旋转数组的最小数字)

    编程是很多偏计算机.人工智能领域必须掌握的一项技能,此编程能力在学习和工作中起着重要的作用.因此小白决定开辟一个新的板块"每日一题",通过每天一道编程题目来强化和锻炼自己的编程能力 ...

  • 每日一题 剑指offer(二叉搜索树的后序遍历序列)

    编程是很多偏计算机.人工智能领域必须掌握的一项技能,此编程能力在学习和工作中起着重要的作用.因此小白决定开辟一个新的板块"每日一题",通过每天一道编程题目来强化和锻炼自己的编程能力 ...

  • 每日一题 剑指offer(包含min函数的栈)

    编程是很多偏计算机.人工智能领域必须掌握的一项技能,此编程能力在学习和工作中起着重要的作用.因此小白决定开辟一个新的板块"每日一题",通过每天一道编程题目来强化和锻炼自己的编程能力 ...

  • 每日一题 剑指offer(从上往下打印二叉树)

    编程是很多偏计算机.人工智能领域必须掌握的一项技能,此编程能力在学习和工作中起着重要的作用.因此小白决定开辟一个新的板块"每日一题",通过每天一道编程题目来强化和锻炼自己的编程能力 ...

  • 每日一题 剑指offer(机器人的运动范围)

    编程是很多偏计算机.人工智能领域必须掌握的一项技能,此编程能力在学习和工作中起着重要的作用.因此小白决定开辟一个新的板块"每日一题",通过每天一道编程题目来强化和锻炼自己的编程能力 ...

  • 每日一题 剑指offer(二叉树中和为某一值的路径)

    编程是很多偏计算机.人工智能领域必须掌握的一项技能,此编程能力在学习和工作中起着重要的作用.因此小白决定开辟一个新的板块"每日一题",通过每天一道编程题目来强化和锻炼自己的编程能力 ...

  • 每日一题 剑指offer(栈的压入和序列弹出)

    编程是很多偏计算机.人工智能领域必须掌握的一项技能,此编程能力在学习和工作中起着重要的作用.因此小白决定开辟一个新的板块"每日一题",通过每天一道编程题目来强化和锻炼自己的编程能力 ...

  • 每日一题 剑指offer(二叉树镜像)

    编程是很多偏计算机.人工智能领域必须掌握的一项技能,此编程能力在学习和工作中起着重要的作用.因此小白决定开辟一个新的板块"每日一题",通过每天一道编程题目来强化和锻炼自己的编程能力 ...