算法总结之 在行列都排好序的矩阵中找数
给定一个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); } }