zoukankan      html  css  js  c++  java
  • 剑指offer第二版面试题3:二维数组中的查找(JAVA版)

    题目:

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

    2 4 9 12

    4 7 10 13

    6 8 11 15

    思路:每次取右上角的一个数字(该例子中取9),如果9大于要找的数字则排除9的那列,否则派出9 的那行

    public class Test3 {
        //arr为要查找数字的数组,num为要查找的数字
        public static boolean find(int[][] arr,int num){
            boolean flag=false;
            
            if(arr!=null && arr.length!=0){
                int cols=arr.length;//列数
                int rows=arr.length;//行数
                //当前行和当前列(第一次为最后一个元素)
                int row=0;
                int col=cols-1;
                
                while(row<=rows-1 && col>=0){
                    // 比较二维数组中元素与number的关系
                    if(arr[row][col]==num){
                        flag=true;
                        break;
                    }else if(arr[row][col]>num){
                        col--;
                    }else{
                        row++;
                    }
                }
            }
            
            return flag;
        }
        public static void main(String[] args) {
            // 测试用例
            int array[][] = { { 1, 2, 8, 9 }, { 2, 4, 9, 12 }, { 4, 7, 10, 13 }, { 6, 8, 11, 15 } };
            boolean flag = find(array, 1);
            System.out.println(flag);
        }
    }
  • 相关阅读:
    关于素数的具体问题
    Scala Apply
    Scala内部类
    Scala 类和对象
    Scala Tuple类型
    Scala数组
    sql server 游标
    表变量和临时表详解
    子查询详解
    EXEC 和 SP_EXECUTESQL的区别
  • 原文地址:https://www.cnblogs.com/xhlwjy/p/11255524.html
Copyright © 2011-2022 走看看