【剑指offer】 在一个二维数组中(每个一维数组的长度相同); 每一行都按照从左到右递增的顺序排序; 每一列都按照从上到下递增的顺序排序; 请完成一个函数,输入这样的一个二维数组和一个整数; 判断数组中是否含有该整数.
import java.util.Scanner; public class 查找 { /* * 在一个二维数组中(每个一维数组的长度相同); * 每一行都按照从左到右递增的顺序排序; * 每一列都按照从上到下递增的顺序排序; * 请完成一个函数,输入这样的一个二维数组和一个整数; * 判断数组中是否含有该整数. */ public static boolean find(int target,int[][] array) { //查找 /*boolean flag = true; for(int i=0;i<array.length;i++) { //行数 for(int j =0;j<array[i].length;j++) { //列数 if(array[i][j]==target) { i++; j++; System.out.println("找到" + target + ",位于二维数组的第" + i + "行" + j + "列" ); flag = false; break; } } } if(flag) { System.out.println("未找到,请重新输入"); } return false;*/ for(int i=0;i<array.length;i++) { //行数 for(int j =0;j<array[i].length;j++) { //列数 if(array[i][j]==target) { i++; j++; System.out.println("找到" + target + ",位于二维数组的第" + i + "行" + j + "列" ); return true; } } } return false; } public static void main(String[] args) { Scanner str = new Scanner(System.in); // 4 X 4 int r = str.nextInt(); //接受 行数 str.next(); //接收 X int c = str.nextInt(); //接受 列数 //创建数组 int[][] t =new int[r][c]; for(int i=0;i<r;i++) { for(int j=0;j<c;j++) { t[i][j] = str.nextInt(); } } //接受要查找的值 int s = str.nextInt(); find(s,t); } }
