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

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

    • resolution 1:

       resolution1 是一个比较容易想到的方法,依次从每行每列遍历整个数组直到找到和target相同的数为止

    //运行时间:198ms
    
    //占用内存:17364k
    public class Solution {
        public boolean Find(int target, int [][] array) {
            int rowCount = array.length;
            int colCount = array[0].length;
            for(int i = 0;i < rowCount; i++){
                for(int j = 0; j < colCount; j++){
                    if(target == array[i][j]){
                        System.out.println("exist");
                        return true;
                    }
                }
            }
            System.out.println("not exist");
            return false;
    
        }
    }
    • resolution2:

      resolution2 主要借助了该数组的特点,每次从每行的最后一个数开始比较,如果target大于最后一个数,就跳转到下一行,如果小于就继续比较。

      /**
             * 运行时间:211ms
             占用内存:17904k
             * @param target
             * @param array
             * @return
             */
            public boolean Find(int target, int [][] array) {
                int rowCount = array.length;
                int colCount = array[0].length;
                int j = colCount - 1;//局部变量
                int i = 0;
    
                    while (j >= 0 && i < rowCount){//注意这里j能够取到0
                        if(target > array[i][j]){
                            i++;
                            j = colCount -1;//注意重新定义j的值
                            continue;
                        }else if(target < array[i][j]){
                            j--;
                        }else if(target == array[i][j]){
                            System.out.println("exist");
                            return true;
                        }
                }
                System.out.println("not exist");
                return false;
            }
    欢迎关注我的公众号:小秋的博客 CSDN博客:https://blog.csdn.net/xiaoqiu_cr github:https://github.com/crr121 联系邮箱:rongchen633@gmail.com 有什么问题可以给我留言噢~
  • 相关阅读:
    Windows NT 的历史
    Windows 下 Mysql8.0.12 的安装方法
    [知乎] 机械硬盘和固态硬盘的简单对比
    syncthing 多主机同步文件工具
    delphi 2007 远程调试
    关于delphi PAServer 远程调试DLL文件
    关于 datasnap Stream的英文博客能容
    DataSnap 用TStream 传递大数据 返回流大小为-1的情况
    c++ builder xe2 (Embarcadero rad studio) 远程调试 同样适用于 delphi 远程调试 教程
    Delphi10 安装Graphics32
  • 原文地址:https://www.cnblogs.com/flyingcr/p/10326851.html
Copyright © 2011-2022 走看看