java矩阵每行每列最大值_给定M*N矩阵,每一行、每一列都按升序排列,找出某元素...

/**

* 功能:给定M*N矩阵,每一行、每一列都按升序排列,找出某元素。

*/

两种方法:

方法一:

/**

* 思路:若列的末端大于x,那么x位于该列的左边;若行的开头小于x,那么x位于列的下边。从矩阵中的子矩阵中查找元素。

* @param matrix

*/

public static boolean findElement(int[][] matrix,int elem){

int row=0;

int col=matrix[0].length-1;

while(row=0){

if(matrix[row][col]==elem)

return true;

else if(matrix[row][col]>elem)

col--;

else

row++;

}

return false;

}

方法二:

/**

* 思路:由于每一个元素都大于它左边和上边的元素,所以,若在矩阵里任意画长方形,其右下角的元素一定是最大的,左上角的元素一定是最小的。

* 将矩阵分为四个区域,以递归方式搜索左下区域和右上区域。

* @param matrix

*/

public void findElement2(int[][] matrix,int elem){

你可能感兴趣的:(java矩阵每行每列最大值)