zoukankan      html  css  js  c++  java
  • 算法-二维数组中的查找

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

    public class Solution {
        public boolean Find(int target, int [][] array) {
        //第一种方法 不是很好
            int m = array.length;
            int n = array[0].length;
            for(int i = 0;i < m; i++){
                    for(int j = 0; j < n;j++){
                        if(target == array[i][j]){
                            return true;
                        }
                    }
                }
            return false;
          //第二种比较好      
     1 public boolean Find(int target, int [][] array) {
     2             int colLen = array[0].length;//获取列
     3             int rowLen = array.length;//获取行
     4             int row = 0;//行坐标
     5             int col = colLen-1;//列坐标
     6              //从右上角开始查找
     7             while(row < rowLen && col >= 0){
     8                 if(array[row][col] == target)
     9                     return true;
    10                 //如果目标值比当前值还要小,那么第col列所有值不符合,所以col-1
    11                 if(target < array[row][col]){
    12                     col--;
    13                     continue;
    14                 }
    15                 //如果目标值比当前值还要大, 那么第row行所有值不符合,所以row+1;
    16                 if(target > array[row][col]){
    17                     row++;
    18                     continue;
    19                 }
    20             }
    21             return false;
    22     }
    
    
    
     
  • 相关阅读:
    matlab画图-在同一图像中显示多个函数
    matlab简单作图2
    matlab简单作图
    c++ this指针概念
    c++ 静态成员
    C++ 类对象作为类成员
    (C++核心编程 )初始化列表
    (C++核心编程 )点和圆的关系
    (C++核心编程)设计立方体类
    (python基础 函数)
  • 原文地址:https://www.cnblogs.com/fankongkong/p/6445897.html
Copyright © 2011-2022 走看看