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

    题目描述:

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

    解题思路:

    从数组的右上角(左下角)开始查找

    • 如果要查找的数字小于右上角,则行数减1,即去掉右上角所在列
    • 如果要查找的数字大于右上角,则列数加1,即去掉右上角所在列
    • 如果要查找的数字等于右上角,返回

    左上角同理,就不再赘述了。

    图示:

    java实现:

    public boolean Find(int target, int [][] array) {
            int rows = array.length - 1,cols = array[0].length - 1,firstrows = 0;
            boolean flag = false;
            if(rows<=0 || cols<=0)
                System.out.println("数组为空");
            else {
                while(firstrows <= rows && cols >= 0) {
                    if(array[firstrows][cols]>target) 
                        --cols;
                    else if(array[firstrows][cols]<target) 
                        ++firstrows;
                    else {
                        flag = true;
                        break;
                    }
                }
            }
            if(flag==false)
                return false;
            else
                return true;
        }

     牛客提交:

        

     
     
  • 相关阅读:
    hibernate之初学复合主键
    hibernate之初学增删改查
    hibernate之配置文件帮助文档
    hibernate之初学项目搭建
    Python调用OpenCV读显写
    C++写入txt
    C++逐词读取txt
    C++逐行读取txt
    C#调用C++系列二:传结构体
    C#调用C++系列一:简单传值
  • 原文地址:https://www.cnblogs.com/baby-zuji/p/11275795.html
Copyright © 2011-2022 走看看