Q : 在一个二维数组中,从左到右,从上到小都是递增的。查找数组中的某一个元素
package searchMatrix;
/**
* 在一个二维数组中,从左到右,从上到小都是递增的。查找某一个数
*/
public class SearchElement {
public int[][] arr;
public SearchElement(){
arr = new int[][]{ {1,2,4,8},
{3,6,12,13},
{5,7,13,15},
{8,9,16,17}};
}
/**
* 从右上角查找,如果相等返回。
* 如果右上角小于data 删除行
* 如果右上角大于data 删除列
*/
public boolean findElement(int[][] arr,int data){
int rows = arr.length; //行
int columns = arr[0].length; //列
int row = 0;
int column = columns-1;
while (row < rows && column>=0){
if (data == arr[row][column]){
return true;
}
if (arr[row][column] > data){
column--;
}else {
row++;
}
}
return false;
}
}
网友评论