思路分析: 从矩阵的左下角开始,因为每行每列都是有序的。
import java.util.*;
public class Finder {
public int[] findElement(int[][] mat, int n, int m, int x) {
int nn = n-1;
int mm = 0;
while(nn >= 0 && mm <= m-1){
if(mat[nn][mm] == x)
return new int[]{nn,mm};
//如果此时元素大于目标值,则nn--,往上寻找
else if(mat[nn][mm] > x)
nn--;
//如果此时元素小于目标值,则mm++,往右寻找
else
mm++;
}
return new int[]{};
}
}

京公网安备 11010502036488号