剑指offer01--二维排序数组查找元素

来源:互联网 发布:php输出当前时间戳 编辑:程序博客网 时间:2024/06/05 23:00

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

package 剑指offer;/*题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序, * 每一列都按照从上到下递增的 顺序排序。请完成一个函数, * 输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。*//*public class Test03 {public static void main(String args[]){int [][]ary = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};//注意二维数组的初始化System.out.println(JudgeTwoArray(ary, 8));}public static boolean JudgeTwoArray(int [] [] ary, int num){//这里必须是静态方法final int line = ary.length;final int cloum = ary[0].length;int flag = 0;for(int i = 0; i < line; i++){for(int j = 0; j < cloum; j++){if(ary[i][j] == num)flag = 1;}}if(flag == 1){return true;}else return false;}}*///我只能说上边的方法确实是死笨死笨的,也就是学前班的水平了,我不告诉你这是我编写的//确实编写的好烂啊,啊啊啊public class Test03 {public static void main(String args[]){int [][]ary = {{1, 3, 5, 6},       {5, 7, 9, 8},       {6, 8, 11, 12}};//注意二维数组的初始化System.out.println(JudgeTwoArray(ary, 85));System.out.println(JudgeTwoArray(ary, 5));System.out.println(JudgeTwoArray(ary, 8));}public static boolean JudgeTwoArray(int [] [] ary, int num){int lines = ary.length;int cloums = ary[0].length;int line = 0;int cloum = cloums - 1;// 行列的开始位置while(line >= 0 & line < lines && cloum >= 0 & cloum < cloums){if(ary[line][cloum] > num){cloum--;//剔除一列}else if(ary[line][cloum] < num){line++;//剔除一行}else if(ary[line][cloum] == num){return true;}}return false;}}
巩固基础,勤加练习

1 0
原创粉丝点击