A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 唯有繁星 中级黑马   /  2015-12-5 23:32  /  664 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

题目描述
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数
public class solution1 {    public static boolean Find(int[][] array,int target){        //array的长度和宽度        int rows=array.length;        int cols=array[0].length;        //如果array不包含任何元素,就直接返回false        if(rows<=0||cols<=0){            return false;        }        //初始时temp在数组array中的位置        int row=0;        int col=cols-1;       //先找到二维数组的右上角的那个元素的值        int temp=array[row][col];        //如果temp与target不相等,那么就按照下面的规则,不断改变temp的值,直到相等        while (temp!=target){            //当temp大于target的时候,向左移动一个位置            if(temp>target){                 col=col-1;                if(col<0){                    return false;                }            }            //当temp小于target的时候,向下移动一个位置            if (temp<target){                row=row+1;                if (row>=rows){                    return false;                }            }            //改变temp的值            temp=array[row][col];        }        return true;    }    public static void main(String[] args){        //int[][] array={{1,2,8,9},{2,4,9,12},{4,7,10,13},{6,8,11,15}};        int[][] array={{}};        int target=100;        boolean result=Find(array,16);        System.out.println(result);    }}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马