[剑指Offer][数组]二维数组中的查找

题目描述

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
[
  [1,2,8,9],
  [2,4,9,12],
  [4,7,10,13],
  [6,8,11,15]
]

给定 target = 7,返回 true。

给定 target = 3,返回 false。

 

 1 public class Solution {
 2     public boolean Find(int target, int [][] array) {
 3         if(array.length == 0 || array[0].length == 0) {
 4             return false;
 5         }
 6         for(int i = 0; i < array.length; i ++) {
 7             for(int j = 0; j < array[i].length; j ++) {
 8                 if(array[i][j] == target) {
 9                     return true;
10                 }
11             }
12         }
13         return false;
14     }
15 }
 1 public class Solution {
 2     public boolean Find(int target, int [][] array) {
 3         if(array.length == 0 || array[0].length == 0) {
 4             return false;
 5         }
 6         int i = 0;
 7         int j = array[0].length - 1;
 8         while(i < array.length && j >= 0) {
 9             if(array[i][j] == target) {
10                 return true;
11             } else if(array[i][j] > target) {
12                 j --;
13             } else if(array[i][j] < target) {
14                 i ++;
15             }
16         }
17         return false;
18     }
19 }

 

posted @ 2021-05-10 23:30  StringBuilder  阅读(33)  评论(0)    收藏  举报