zoukankan      html  css  js  c++  java
  • 二维数组查找

    时间限制:1秒 空间限制:32768K

    题目描述

    在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
     
     1       function Find(target, array)
     2         {
     3             var row = array.length;
     4             var col = array[0].length;
     5             // console.log(`row,col:${row},${col}`);
     6             var i = 0, j = 0;
     7             while(i<row && j<col) {
     8                 if (target > array[i][j]) {
     9                     i++;
    10                     j++;
    11                 } else if (target === array[i][j]) {
    12                     // console.log(`i,j: ${i},${j}`);
    13                     return true;
    14                 } else {
    15                     // 右上角
    16                     for (var m = i-1; m >= 0; m--) {
    17                         for(var n = j; n < col; n++) {
    18                             if (array[m][n] === target) {
    19                                 return true;
    20                             }
    21                         }
    22                     }
    23                     // 左下角
    24                     for (m = i+1; m < row; m++) {
    25                         for (n = j-1; n>=0; n--) {
    26                             if (array[m][n] === target) {
    27                                 return true;
    28                             }
    29                         }
    30                     }
    31                     return false;
    32                 }
    33             }
    34             return false;
    35         }

    emmmm......思路很简单,就是先和对角线元素比较,如果比对角线的某个元素小,则只能在对角线的右上角和左下角,如下图所示:

  • 相关阅读:
    简单手风琴特效、轮播
    MVC
    文字自动下拉隐藏显示
    jQuery基础 DOM操作
    JQuery基础
    SQL 中的常用函数及使用
    数据库中的T-sql语句 条件修改 高级查询
    2017-03-09 数据库的基本东西
    C#中的冒泡排序
    C#中的数组
  • 原文地址:https://www.cnblogs.com/zou20134585/p/8650786.html
Copyright © 2011-2022 走看看