从右上角或左下角开始找,逐行删除,或者用二分法查找
1 public class Test4 { 2 public static boolean find(int[][] array,int target){ 3 if (array==null){ 4 return false; 5 } 6 int row=0; 7 int column=array[0].length-1; 8 9 while (row<array.length && column>=0){ 10 if (array[row][column]==target){ 11 return true; 12 } 13 if (array[row][column]>target){ 14 column--; 15 }else{ 16 row++; 17 } 18 } 19 return false; 20 } 21 22 public static void main(String[] args) { 23 int[][] array ={{1,2,8,9},{2,4,9,12},{4,7,10,13},{6,8,11,15}}; 24 System.out.println(find(array,7)); 25 } 26 }
[剑指Offer第二版JAVA实现][面试题4:二维数组中的查找]
原文:https://www.cnblogs.com/lkylin/p/12750982.html