zoukankan      html  css  js  c++  java
  • 剑指offer1:二维数组中的查找

    题目描述:

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

    思路:
    1、直接使用查找的方式,当数组中的数字刚好等于target则返回true,否则返回false。可以考虑使用二分查找降低复杂度
    2、可以判断,选择左下角的数字或者右上角的数字进行比较可以使问题变简单。

     1 //1、二分查找
     2 public class Solution {
     3     public boolean Find(int target, int [][] array) {
     4         for(int i = 0; i < array.length;i++){
     5             int low = 0,high = array[i].length-1;
     6             while(low<=high){
     7                 int mid = (low+high)/2;
     8                 if(target>array[i][mid]){
     9                     low = mid + 1;
    10                 }
    11                 else if(target<array[i][mid]){
    12                     high = mid -1;
    13                 }
    14                 else
    15                 {return true;}
    16             } 
    17         }
    18         return false;
    19     }
    20 }
     1 2、比较左下角或右上角的数
     2 public class Erweishuzuchazhao {
     3      public boolean Find(int target, int [][] array) {
     4          int x = array.length-1; int y = 0;
     5          while(x>=0&&y<array[0].length){
     6              if(target==array[x][y]) return true;
     7              else if(target<array[x][y]){
     8                 x--;
     9             }else {
    10                 y++;
    11             }
    12          }
    13          return false;
    14          
    15         }
    16     public static void main(String[] args) {
    17         // TODO Auto-generated method stub
    18         Erweishuzuchazhao erweishuzuchazhao = new Erweishuzuchazhao();
    19         int target = 7;
    20         int[][] array = {{1,2,8,9},{2,4,9,12},{4,7,10,13},{6,8,11,15}};
    21         if(erweishuzuchazhao.Find(target, array)==true) System.out.println(true);
    22     }
    23 
    24 }
  • 相关阅读:
    docker安装
    [golang grpc] 框架介绍
    docker介绍
    Visual Studio Code常用设置
    eclipse常用设置
    [golang note] 网络编程
    [golang note] 工程组织
    [golang note] 协程通信
    [golang note] 协程基础
    [golang note] 接口使用
  • 原文地址:https://www.cnblogs.com/zlz099/p/8527193.html
Copyright © 2011-2022 走看看