一、特征二维数组数字查找
题目:二维数组中,每行从左到右递增,每列从上到下递增;完成一个函数:
要求:输入该数组和待查找数字,判断是否可查找到该数字;
// 从数组右上角启动查询,根据查询结果判断行和列下标的变化,逐渐缩小查找范围
private static boolean findValueInMatrix(Integer[][] number, Integer key) { int rowLength = number.length; int columnLength = number[0].length; boolean bFindFlag = false; if (rowLength > 0 && columnLength > 0) { int rowIndex = 0; int columnIndex = columnLength - 1; while (rowIndex < rowLength && columnIndex >= 0) { if (number[rowIndex][columnIndex] == key) { bFindFlag = true; break; } if (number[rowIndex][columnIndex] > key) { columnIndex--; // key值小于当前列,则下一步在左边列查询 } else { rowIndex++; // key值大于当前行,则下一步在下一行查询 } } } return bFindFlag; }