package com.zjp.offer.study; /** * 在一个二维数组中(每个一维数组的长度相同), * 每一行都按照从左到右递增的顺序排序, * 每一列都按照从上到下递增的顺序排序。 * 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 */ public class Solution { public static void main(String[] args) { int arr[][] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; int target = 15; boolean exists = find(arr, target); System.out.println(exists); } /* 思路 * 矩阵是有序的,从左下角来看,向上数字递减,向右数字递增, * 因此从左下角开始查找,当要查找数字比左下角数字大时。右移 * 要查找数字比左下角数字小时,上移 */ private static boolean find(int[][] arr, int target) { int len = arr.length - 1; int i = 0; while (len >= 0 && i < arr[0].length) { if (arr[len][i] > target) { len--; } else if (arr[len][i] < target) { i++; }else return true; } return false; } }
二维数组中的查找
最新推荐文章于 2019-03-10 23:30:01 发布