美文网首页工作生活
4.二维数组的查找(仅思路)

4.二维数组的查找(仅思路)

作者: HamletSunS | 来源:发表于2019-06-30 17:57 被阅读0次

思路:
借鉴二分查找法的思想,即找到一个中间值,通过比较它的大小,可以批量的缩小搜索空间。因此根据本题题意可以从矩阵的右上角或者矩阵的左下角处开始查找key。
以右上角举例,若val大于key,则向左搜索(搜索空间一次减少一列),若val小于key,则向下搜索(搜索空间一次减少一行)

class Solution {
public:
    bool Find(int target, vector<vector<int> > array) {
        int m=array.size();
        if(m==0)
            return false;
        int n=array[0].size();
        if(n==0)
            return false;
        int row=0,col=n-1;
        while(row<m && col>=0){
            int key=array[row][col];
            if(key==target)
                return true;
            if(key>target)
                col--;
            if(key<target)
                row++;
        }
        return false;
    }
};

相关文章

  • 4.二维数组的查找(仅思路)

    思路:借鉴二分查找法的思想,即找到一个中间值,通过比较它的大小,可以批量的缩小搜索空间。因此根据本题题意可以从矩阵...

  • 2019-08-07 B1004 成绩排名

    这道题用之前的二维数组的思路是不对的,因为这道题并不是对二维数组进行查找操作而是需要对二维数组进行遍历操作,因此我...

  • 编程案例自我总结(一)

    此内容仅提供解题思路,应自行尝试撰写具体代码 1.数组中重复的数字查找:查找数组中重复的数字,数组长度为n,取值范...

  • 算法题

    行列都是有序的二维数组,查找k是否存在【查找法】 二维数组中的查找(行列分别有序数组的二分查找)【递归法】 快速排...

  • leetcode-0004

    题目: 4. 寻找两个有序数组的中位数 关键词:排序 折半查找 思路: 查找第k个数,每次查找二个数组的第k/2位...

  • iOS-算法集锦-剑指offer-百题详解之一

    目录 1. 前言 2. 实现 Singleton 3. 数组中重复的数字 4. 二维数组中的查找 5. 替换空格 ...

  • 1. 数组与矩阵

    [toc] 3. 数组中重复的数字 思路:数组数字范围为1-n,统计count[num]即可 4. 二维数组中的查...

  • 剑指offer题解

    前言 2. 实现 Singleton 3. 数组中重复的数字 4. 二维数组中的查找 5. 替换空格 6. 从尾到...

  • 剑指Offer二维数组查找

    剑指Offer二维数组查找 二维数组查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到...

  • 剑指offer【03~09】

    题目链接: 剑指offer 03-09 目录: 3. 数组中重复的数字4. 二维数组中的查找5. 替换空格6. 从...

网友评论

    本文标题:4.二维数组的查找(仅思路)

    本文链接:https://www.haomeiwen.com/subject/efibcctx.html