---恢复内容开始---

题目:

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

 

解题思路

既然从左到右递增,从上到下也是递增,那就先找一个基点,基点就是右上角那个点。

如果target小于右上角的点,说明这个值肯定是在左边。

如果target大于右上角的点,说明这个值肯定是在下边。

要求就是每次不符合,要能够剔除一行或者一列是最快的解法。

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

 

---恢复内容结束---

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄