A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小菜_一碟 中级黑马   /  2016-11-21 00:23  /  705 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输 入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

解析:
  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.     }
复制代码

1 个回复

倒序浏览
不错,值得借鉴
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马