麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > Java > 正文

用遞歸查找有序二維數(shù)組的方法詳解

2019-11-26 16:03:38
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
假設(shè)給定一個(gè)有序二維數(shù)組,每一行都是從左到右遞增,每一列都是從上到下遞增,如何完成一個(gè)函數(shù),輸入這樣一個(gè)二維數(shù)組和一個(gè)整數(shù),判斷這個(gè)整數(shù)是否在這個(gè)二維數(shù)組中。
假設(shè)一個(gè)4×4的有序二維數(shù)組:
          1          2          8          9
          2          4          9          12
          4          7          10        13
          6          8          11        15
要查找的數(shù)字為6。
算法的核心思想是,先取最左上角的數(shù)字9,因?yàn)?比6大,所以可以排除比9大的數(shù)字,也就是第四列,然后取8,同理排除第三列,再取2,比6小,可排除比2小的數(shù)字,也就是第一行,同理取4,排除第二行,取7,排除第二列,取4,排除第三行,取6,相等,返回true。
這里我們用遞歸實(shí)現(xiàn),代碼為:
復(fù)制代碼 代碼如下:

public class FindMatrixNumber {
 private static FindMatrixNumber instance;
 private static boolean found = false;
 public static FindMatrixNumber getInstance() {
  if (instance == null) {
   instance = new FindMatrixNumber();
  }
  return instance;
 }
 public static boolean find(int matrix[][], int number) {
  if (matrix == null || matrix.length == 0 || matrix[0].length == 0) {
   return false;
  } else {
   System.out.println("****Start finding****");
   findMatrixNumber(matrix, matrix.length, 0, matrix[0].length,
     number);
   System.out.println("*****End finding*****");
  }
  return found;
 }
 private static void findMatrixNumber(int matrix[][], int rows, int row,
   int columns, int number) {
  if (row > rows - 1)
   return;
  int cornerNumber = matrix[row][columns - 1];
  System.out.println(cornerNumber);
  if (cornerNumber == number) {
   found = true;
   return;
  } else if (cornerNumber < number) {
   findMatrixNumber(matrix, rows, ++row, columns, number);
  } else if (cornerNumber > number) {
   findMatrixNumber(matrix, rows, row, --columns, number);
  }
 }
}

測(cè)試代碼為:
復(fù)制代碼 代碼如下:

public class TestFindMatrixNumber {

 public static void main(String[] args) {
  int matrix[][] = {{1,2,8,9},{2,4,9,12},{4,7,10,13},{6,8,11,15}};
  System.out.println(FindMatrixNumber.find(matrix, 6));
 }

}

測(cè)試代碼運(yùn)行結(jié)果為:
復(fù)制代碼 代碼如下:

****Start finding****
9
8
2
4
7
4
6
*****End finding*****
true

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: gril hd| 成人在线视频在线观看 | 免费一级毛片电影 | 玖玖视频精品 | 91av国产在线 | 逼片视频| av成人在线观看 | 999精品国产| 99国产精品自拍 | 羞羞视频免费入口网站 | 日韩av电影免费在线观看 | 国产精品久久久久无码av | 欧美性生活网站 | 国产日韩中文字幕 | 中文字幕极速在线观看 | 亚洲福利视频52 | 欧美3p激情一区二区三区猛视频 | 精品一区二区6 | 天天看天天摸天天操 | 欧美福利视频一区二区 | 国产99久久久久久免费看 | 成人一级黄色大片 | 福利免费观看 | 欧美性videofree精品 | 国产一区二区三区视频在线 | 免费国产一级淫片 | 国产精品自在线拍 | 一区二区三区日韩电影 | 国产色视频免费 | 久久国产精品一区 | 日韩一级片| 欧美一级做性受免费大片免费 | 国产精品自拍片 | 国产91小视频在线观看 | 国产亚洲精品久久午夜玫瑰园 | 韩国一大片a毛片 | 香蕉久草视频 | 伊人在线 | 中文字幕在线播放视频 | 久久精品国产清自在天天线 | 伊人久久电影网 |