package com.huanchuang.arvin.vo;
public class Finder {
private String findElement(int[][] matrix, int target) {
int row = 0, column = 0;
// 只要行还没有达到最大值就继续执行
while (row < matrix.length) {
int colMax = matrix[row].length - 1;// 用于获取矩阵每一行的最大值
// 因为是行和列都是增序的,只要指定的数在每一行的最小值和最大值之间,就返回true
if (matrix[row][column] <= target && matrix[row][colMax] >= target) {
for (int i = 0; i < matrix[row].length; i++) {
if (matrix[row][i] == target) {
return "matrix[" + row + "][" + i + "]";
}
}
} else {// 否则的话就自动去下一行进行比较
row++;
}
}
return "matrix[-1][-1]";// 返回-1表示不存在
}
public static void main(String[] args) {
int matrix[][] = { { 1, 2, 3 }, { 4, 5 }, { 7, 8, 9 } };
Finder finder = new Finder();
String location = finder.findElement(matrix, 6);
System.out.println("位置" + location);
}
}