/**题目1
* 在一个二维数组中(每个一维数组的长度相同),
* 每一行都按照从左到右递增的顺序排序,
* 每一列都按照从上到下递增的顺序排序。
* 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
package com.java.offer; /**01 * 在一个二维数组中(每个一维数组的长度相同), * 每一行都按照从左到右递增的顺序排序, * 每一列都按照从上到下递增的顺序排序。 * 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 * * */ /** * 当target小于元素a[row][col]时,那么target必定在元素a所在行的左边, 即col--; 当target大于元素a[row][col]时,那么target必定在元素a所在列的下边, 即row++; 1 2 3 k=8 从3开始找 3<8 --- 往下一行找 row++ * 4 5 6 * 7 8 9 * */ public class Solution01 { public static boolean arrHaveNum(int arr[][], int k){ int row=0; int col=arr[0].length-1; if(arr==null && arr.length==0) return false; else{ while(col>=0 && row < arr.length){ if(arr[row][col]>k){ col--; }else if(arr[row][col] < k){ row++; }else return true; } } return false; } public static void main(String[] args) { int arr[][]={{1,2,3},{4,5,6},{7,8,9}}; System.out.println(arrHaveNum(arr, 8)); System.out.println(arrHaveNum(arr, 1)); } }
二维数组的查找
最新推荐文章于 2024-08-30 12:08:57 发布