码迷,mamicode.com
首页 > 编程语言 > 详细

剑指Offer-数组

时间:2019-09-18 14:35:51      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:--   相同   二维   return   cti   pre   长度   false   targe   

题目

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

思路

  • 数组是有序的,所以我们选取左下角或右上角作为一开始判断的依据
  • 假设选取左下角作为判断依据,输入的整数大于左下角的值,继续往右判断,小于的话向上一层移动,再继续判断

代码

function Find(target, array) {
    let len = array.length-1; //数组的行数
    let lenCol = array[0].length-1; //数组的列数 
    if(target<array[0][0] || target>array[len][lenCol]){ //进行临界值判断
        return false;
    }
    let i=len; //最后一行
    let j=0; //第一列
    while(i>0 && j<lenCol){
        if(target>array[i][j]){
            j++;
        }
        if(target<array[i][j]){
            i--;
        }
        if(target === array[i][j]){
            return true
        }
    }
    return false;

}

剑指Offer-数组

标签:--   相同   二维   return   cti   pre   长度   false   targe   

原文地址:https://www.cnblogs.com/kbinblog/p/11541765.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!