二维有序数组的查找——剔除列剔除行

news/2024/7/19 14:37:24 标签: array, js, 查找

题目描述

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

function Find(target, array){

    //思路一:遍历,暴力搜索。
   /*
       var row = array.length;
       var col = array[0].length;
       for(var i=0;i<col;i++){
          for(var j=0;j<row;j++){
              if(array[i][j]==target){
                  return true;
              }
          }
      }
      return false;
    */
    
    //思路二:利用题目已知条件,矩阵是有序的。从右上角开始,不断剔除列和行,直至找到target。
    var res=false;//定义返回结果为false
    var row = array.length;
    var col = array[0].length;
    if(array!=null&&row>0&&col>0){
        var i=0;
        var j=col-1;//i、j表示从数组的右上角开始比较
        while(i<row&&j>=0){//终止条件
            if(array[i][j]==target){
                res=true;//找到target,返回结果为true,终止程序
                break;
            }else if(array[i][j]>target){
                j--;// 如果元素比目标数大,说明元素所在的列的值都不可能,列左移
            }else{
                i++;// 如果元素比目标数小,此时的元素所在的行的值都不可能,行下移
            }         
        }
    }
    return res;
}

 


http://www.niftyadmin.cn/n/1426111.html

相关文章

JavaScript——读取链表元素,颠倒存储

题目背景&#xff1a; 对链表的考察。面试的时候&#xff0c;由于链表的创建、插入、删除等操作&#xff0c;代码量不是很多&#xff0c;相较哈希表、有向图等数据结构而言&#xff1b;但又考察应聘者的编程功底&#xff0c;为各个公司面试官所青睐。应当重视。 题目描述&…

js——两个栈Stack实现一个队列Queue

基本概念理解: /*栈&#xff08;stack&#xff09;又名堆栈&#xff0c;它是一种运算受限的线性表。 其限制是仅允许在表的一端进行插入和删除运算。 这一端被称为栈顶&#xff0c;相对地&#xff0c;把另一端称为栈底。 向一个栈插入新元素又称作进栈、入栈或压栈&#xff0c…

使用struts

使用struts <action-mappings ><action path"/login" type"com.yourcompany.struts.action.LoginAction" ><forward name"ok" path"/tt1.jsp" /></action></action-mappings>

在浏览器中输入URL并回车后都发生了什么?

震惊脸&#xff0c;从没想过这是一个问题! 然而&#xff0c;这是前端小白必须要深刻了解的问题。前端面试经常问道&#xff0c;下面的每个阶段都可以大做文章&#xff01;&#xff01;&#xff01; 在浏览器网址栏输入baidu.com&#xff0c;点击enter出现百度搜索引擎。在这很…

讲讲浏览器的缓存机制

问题的开端是由http响应状态码304引出的&#xff01; 一般而言&#xff0c;第一次访问一个网站&#xff0c;返回的状态码是200。那304状态码有什么用&#xff1f; 这跟浏览器性能优化分不开。 例如&#xff0c;浏览器直接使用缓存而不发起请求&#xff0c;减少请求&#xff…

JavaScript——旋转数组的最小数字

题目描述 把一个数组最开始的若干个元素搬到数组的末尾&#xff0c;我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转&#xff0c;输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转&#xff0c;该数组的最小值为1。 NOTE&#xff1a;给出的所有…