题目:
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数
思路:
首先选取数组中右上角的数,然后让该数(num1)和待查找的数(num2)进行比较,如果num1比num2小,那么接下来只能向下继续查找,行数加1,如果num1比num2大,那么接下来应该将列数减1,继续查找,直到整个数组遍历完成
代码:
1 public boolean findNum(int[][] arr,int num) { 2 for(int i=0;i<arr.length;i++) { 3 if(arr[0].length!=arr[i].length) { 4 System.out.println("数组列数不相同"); 5 return false; 6 } 7 } 8 int l=0;//二维数组行数 9 int w=arr[l].length-1;//二维数组列数 10 if(arr[l][w]==num) { 11 //System.out.println("有相同的数字"); 12 return true; 13 }else { 14 while(arr[l][w]!=num) { 15 if(l>=arr.length-1||w<0) { 16 return false; 17 } 18 if(arr[l][w]<num) { 19 l++; 20 }else{ 21 w--; 22 } 23 } 24 return true; 25 } 26 27 }
原文地址:https://www.cnblogs.com/wgblog-code/p/11168676.html
时间: 2024-10-09 18:22:38