二维数组中的查找

简介: 题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路从右上角元素开始遍历,若小于目标,则删除整行;若大于目标,则删除整列。每次执行都会删除一行或一列,最多执行2n次。实现代码class Solution {public

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

解题思路

从右上角元素开始遍历,若小于目标,则删除整行;若大于目标,则删除整列。每次执行都会删除一行或一列,最多执行2n次。

实现代码

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

        return false;
    }
};
目录
相关文章
|
编译器
数组的下标法和指针法查找数组中元素的不同
总结文档的时候遇到了这个问题。在CSDN上看到一篇博客觉得有缺漏和误导性,所以自己总结一下。
67 0
|
7月前
|
Java
【剑指offer】-二维数组的查找-01/67
【剑指offer】-二维数组的查找-01/67
剑指offer-3.二维数组的查找
剑指offer-3.二维数组的查找
27 0
剑指Offer04二维数组中的查找
剑指Offer04二维数组中的查找
|
算法 C语言 C++
【二分查找】34. 在排序数组中查找元素的第一个和最后一个位置
二分查找是一种高效的查找算法,其时间复杂度为 O(log n)。在许多情况下,我们需要在一个有序数组中找到某个目标值的搜索范围。本文将介绍一种基于二分查找的搜索范围查找算法,该算法能够快速找到目标值在数组中的起始和结束位置。
73 0
剑指offer_数组---二维数组中的查找
剑指offer_数组---二维数组中的查找
61 0
剑指offer 03. 二维数组中的查找
剑指offer 03. 二维数组中的查找
60 0
|
索引
labview数组数据一维数组二维数组索引行列元素替换子数组排序
labview数组数据一维数组二维数组索引行列元素替换子数组排序
256 0