【Java】 剑指offer(3) 二维数组中的查找
2021-07-03 20:04
标签:array break 比较 public open 提交 als 二维数组 注意 本文参考自《剑指offer》一书,代码采用Java语言。 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 查找整数时,如果从左上角开始查找,情况较为复杂,可以转换思路,从右上角开始查找:左边数字比较小,右边数字比较大,容易进行判断。 测试用例 1.要查找的数字在数组中 2.要查找的数字不在数组中 3.数组为空 4.数组不满足大小规则 5.数组每行长度不一致. (代码中包含测试代码) ==================================================================== 上面代码考虑了数组数字大小不符合规则的情况,所以较为繁琐。 在牛客网中提交的代码如下(不含测试代码): 【Java】 剑指offer(3) 二维数组中的查找 标签:array break 比较 public open 提交 als 二维数组 注意 原文地址:https://www.cnblogs.com/yongh/p/9619591.html题目
思路
Java代码
/**
* @Description 二维数组中的查找
*
* @author yongh
* @date 2018年7月16日 下午2:20:59
*/
// 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按
// 照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个
// 整数,判断数组中是否含有该整数。
public class FindInPartiallySortedMatrix {
/*
* 判断二维数组matrix中是否含有整数a
* 返回值为a的下标,{-1,-1}代表不存在
*/
public int[] find(int[][] matrix, int a) {
int[] index = { -1, -1 };
// 判断数组是否正确
if (matrix == null || matrix.length = 0) {
if (a == matrix[row][column]) {
index[0] = row;
index[1] = column;
System.out.println("数字" + a + "在二维数组中的下标为:" + index[0] + "," + index[1]); // 注意下标是从0开始的
return index;
} else if (a
test1:数字7在二维数组中的下标为:2,1
test2:数组中不含数字:5
test3:数组无效!
test4:数组中数字大小不符合要求!
test5:数组列数不一致!
public class Solution {
public boolean Find(int target, int [][] array) {
if(array==null||array.length=0){
if(target==array[row][column]){
return true;
}else if(target