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

来源:互联网 发布:程序员客栈 编辑:程序博客网 时间:2024/06/05 23:55
package com.offer.cn;public class Solution {    public static boolean find(int target, int [][] array) {        int rows=array.length;        int columns=array[0].length;//这里计算数组的列数        boolean found=false;        //首先要判断数组是否存在        if(array !=null && rows >0 && columns >0){            //本题的重点  由于矩阵是个有序矩阵,一定要从左下角或者右上角进行开始循环判断,这样才能达到缩小查找范围的目的            int row =rows-1;            int column=0;            while(column<=columns-1){                int tempValue=array[row][column];                    if(target > tempValue){                        column++;                    }else if(target < tempValue){                        if(row-1 < 0){                            break;                        }else{                        row--;                        }                    }else{                        found=true;                        break;                    }                }            }        return found;    }    public static void main(String[] args) {        int [][] a = new int [][]{{1,2,8,9},{2,4,9,12},{4,7,10,13},{6,8,11,15}};          System.out.println(find(-5, a));      }}
1  2  8   92  4  9   124  7  10  136  8  11  15
阅读全文
0 0
原创粉丝点击