(一)

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

  解题思路:每一行单调递增、每一列也是单调递增,每一行的最右边为最大值。让目标值和每一行的最大值去比较,如果目标值大于这一行的最大值,则到下一行再去比较,如果小于这一行最大值则到这一行的前一列去比较。找不到的话为false。

 1 public class Solution {
 2     public boolean Find(int target, int [][] array) {
 3         boolean found = false;//开始found设置为false
 4         int lie = array[0].length;//获取数组列数
 5         int hang = array.length;//获取数组行数
 6         int column = lie - 1;
 7         int row = 0;
 8         while(row<hang && column>=0){   //在所有条件都没有找到后跳出循环
 9             int value = array[row][column];
10             if(target>value){
11                 row++;
12             }else if(value>target){
13                 column--;
14             }else{
15                 found = true;//找到了才为true,跳出循环
16                 break;
17             }
18         }
19      return found;
20     }
21 }

 

posted @ 2018-12-06 19:27  落水河图  阅读(263)  评论(0)    收藏  举报