算法总结之 在行列都排好序的矩阵中找数

给定一个NXM的整型矩阵,和一个整数K,每一行,每一列都是排好的。判断K是否在matrix中

 

反正上下已经排列好了

 初始位置定在左上角,然后开始,比较 

      ==K  返回

     <k   往下走 row++

     >k  往左走  col--

代码实现:

 

package TT;

public class test61 {

     public boolean isContains(int[][] matrix, int k){
          
          int row 0;
          int col = matrix[0].length;
          
          while(row < matrix.length && col >-1){
               
               if(matrix[row][col]==k){
                     return true;
               }else if(matrix[row][col]>k){
                   col--;
                 
            }else {
                row ++;
            }
              
          }
     }
     
}

 

 完整代码可以这么玩儿:

public class Test6 {
    public static boolean containsTarget(int[][] arr, int target) {
        int row = 0;
        int col = arr.length-1;
        if (arr[row][col]==target){
            return  true;
        }else if (col<arr[0].length && arr[row][col]<target){
            col++;
        }else if (row>0 &&arr[row][col]>target){
            row--;
        }
        return false;
    }
    public static void main(String[] args) {
        int[][] arr = new int[3][4];
        arr[0][0] = 1;
        arr[1][0] = 2;
        arr[2][0] = 3;
        arr[0][1] = 4;
        arr[1][1] = 5;
        arr[2][1] = 6;
        arr[0][2] = 7;
        arr[1][2] = 8;
        arr[2][2] = 9;
        arr[0][3] = 10;
        arr[1][3] = 11;
        arr[2][3] = 12;
        boolean result = containsTarget(arr,7);
        System.out.println(result);
    }
}

 

 

 

 

      

posted @ 2017-09-05 09:56  toov5  阅读(297)  评论(0编辑  收藏  举报