美文网首页
(算法)二维数组中查找

(算法)二维数组中查找

作者: QuakOrigin | 来源:发表于2018-07-05 17:41 被阅读0次
题目描述

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

原题来源 牛客网 题1

考虑到二维数组每一行与每一列都是递增的,对于每一行所有元素来说,拿最后一个元素与输入的值进行判断,如果小于输入值,那这一整行就不用判断了。如果大于,那需要对此行元素进行遍历查看,用 二分法 处理单行元素,提高运行效率。

上代码

public boolean Find(int target, int [][] array) {
    
    for(int i=0; i<array.length;i++) {

        int[] _arr = array[i];        
        int pl = _arr.length;
        
        if(_arr[pl-1] < target) {
            continue;
        }
        
        int lt = 0;
        int rt = _arr.length-1;
        int mid = (lt+rt)/2;
        
        while (lt<=rt) {
            if(target == _arr[mid]) {
                return true;
            }else if(_arr[mid] < target) {
                lt = mid+1;
            }else {
                rt = mid-1;
            }
            mid = (lt+rt)/2;
        }
    }
    return false;
}

开心运行一波,结果报错:



数组空没有做判断,😓
加个判断

if(_arr == null || 0==_arr.length) {
     return false;
}

好,立马就过了。


相关文章

  • 剑指offer4.二维数组中的查找

    题目 题目分析 算法-二维数组中的查找 比如一个二维数组是这样: 要查找数组7在不在数组内,根据前人总结出来的规律...

  • 牛客网高频算法题系列-BM18-二维数组中的查找

    牛客网高频算法题系列-BM18-二维数组中的查找 题目描述 在一个二维数组array中(每个一维数组的长度相同),...

  • 数据结构必备代码

    目录: 排序算法 树的遍历 查找 链表插入 数组与列表转化 二维数组排序 java中输入 集合遍历 一、基本排序1...

  • 算法题

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

  • (算法)二维数组中查找

    题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数...

  • 剑指Offer二维数组查找

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

  • 剑指 0ffer 二维数组中的查找

    算法名称:二维数组中的查找 题目内容:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递...

  • 二分查找算法

    二分查找算法或者折半查找算法,是一种在有序数组中查找某一特定元素的搜索算法。 搜索过程从数组的中间元素开始,如果中...

  • LeetCode刷题-二维数组中的查找

    前言说明 算法学习,日常刷题记录。 题目连接 二维数组中的查找[https://leetcode-cn.com/p...

  • 剑指Offer 练习

    剑指Offer 算法练习 03.数组中重复的数字 04.二维数组的查找 05.替换空格 06.从尾到头打印链表 0...

网友评论

      本文标题:(算法)二维数组中查找

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