题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输 入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
解析:
- 方法一(最笨的方法):
- public boolean Find(int target, int [][] array) {
- for(int i=0;i<array.length;i++){
- for(int j=0;j<array[i].length;j++){
- if(array[i][j]==target){
- return true;
- }
- }
- }
- return false;
- }
- 方法二(最佳方法,从数组右上角开始遍历):
- public boolean Find(int target, int [][] array) {
- int rowLen = array.length;
- int colLen = array[0].length;
- int rowNum = 0;
- int colNum = colLen-1;
- while(rowNum<rowLen&&colNum>=0){
- if(array[rowNum][colNum]<target){
- rowNum++;
- }else if(array[rowNum][colNum]>target){
- colNum--;
- }else if(array[rowNum][colNum]==target){
- return true;
- }
- }
- return false;
- }
复制代码 |
|