黑马程序员技术交流社区

标题: 二维数组中的查找问题? [打印本页]

作者: 小菜_一碟    时间: 2016-11-21 00:23
标题: 二维数组中的查找问题?
题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输 入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

解析:
  1. 方法一(最笨的方法):
  2.     public boolean Find(int target, int [][] array) {
  3.                 for(int i=0;i<array.length;i++){
  4.             for(int j=0;j<array[i].length;j++){
  5.                 if(array[i][j]==target){
  6.                     return true;
  7.                 }
  8.             }
  9.         }
  10.         return false;
  11.     }

  12.         方法二(最佳方法,从数组右上角开始遍历):
  13.         public boolean Find(int target, int [][] array) {
  14.                 int rowLen = array.length;
  15.         int colLen = array[0].length;
  16.         int rowNum = 0;
  17.         int colNum = colLen-1;
  18.         while(rowNum<rowLen&&colNum>=0){
  19.             if(array[rowNum][colNum]<target){
  20.                 rowNum++;
  21.             }else if(array[rowNum][colNum]>target){
  22.                 colNum--;
  23.             }else if(array[rowNum][colNum]==target){
  24.                 return true;
  25.             }
  26.         }
  27.         return false;
  28.     }
复制代码

作者: 来到精彩世界    时间: 2016-11-21 23:58
不错,值得借鉴




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2