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

    题目描述:给定一个二维数组,它的每一行从左往右递增,每一列从上往下递增,在该数组中查找目标值,如果存在返回true,否则返回false。

    题目解法

     1 class Solution{
     2     public boolean findTarget(int target,int[][] array){
     3         int rows = array.length;  //数组的行数
     4         int cols = array[0].length;  //数组的列数
     5         if(rows==0||cols==0) return false;
     6         for(int col=0;col<cols;col++){
     7             if(target==array[0][col]||target==array[rows-1][col])return true;
     8             else if(target>array[0][col]&&target<array[rows-1][col]){  
     9                 for(int row=1;row<rows-1;row++){
    10                     if(target==array[row][col])return true;
    11                 }
    12             }
    13         }
    14         return false;
    15     }
    16 }

    解题思路:由于是有序数组,因此数组的第一行、最后一行,第一列、最后一列构成了边界,然后可以通过target与边界值的大小关系,确定target的区间,然后在该区间遍历寻找target。

  • 相关阅读:
    cscope的使用
    关于函数指针
    linux内核源码目录(转)
    lcc之内存分配
    符号管理之符号表
    监听UITextFiled文本发生改变
    Debugging Tools for Windows__from WDK7
    WinDBG__独立安装文件
    20160215
    QT Creator 代码自动补全
  • 原文地址:https://www.cnblogs.com/zhang-yi/p/12063948.html
Copyright © 2011-2022 走看看