zoukankan      html  css  js  c++  java
  • 剑指offer-01-二维数组中的查找

    前端算法也很重要,受别人☛汕大小吴的启发,觉得还是自己整理记录较为清晰,同时也督促自己不断学习。

    题目描述

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

    image

    题目分析

    第一反应是循环遍历,但耗时耗性能。

    《剑指Offer》上提及一个区块划分的概念,将二维数组画成矩形,如下图所示,优先对比最右侧的数字信息,若最右侧的第一个>target,则只需要与第一行的数据比较;若=,则即找到;若<,则第一行的所有数据均排除,继续最右侧的下一个数据与target进行比较。

    image

    代码

    function Find(target, array)
    {
        // write code here
        let i = 0;
        let j = array[i].length-1;
        for(;i<=array.length-1&&j>=0;){
            if(array[i][j]>target){
                j--;
            }else if(array[i][j]<target){
                i++;
            }else{
                return true;
            }
        }
        return false;
    }
    
  • 相关阅读:
    2019暑假集训 windy数
    2019暑假集训 数字游戏
    2019暑假集训 周年纪念晚会
    2019暑假集训 加分二叉树
    0013-求圆柱体体积
    0012-求滑动距离
    0011-绝对值函数
    0010-温度转换
    0009-乘法问题
    0008-三位数倒序问题
  • 原文地址:https://www.cnblogs.com/ShineaSYR/p/9531874.html
Copyright © 2011-2022 走看看