[JianzhiオファーSecond Edition JAVA実装] [インタビューの質問4:2次元配列での検索]

トピック:2次元配列では、各行は左から右への昇順でソートされ、各列は上から下への昇順でソートされます。関数を完成させ、そのような2次元配列と整数を入力し、配列に整数が含まれているかどうかを判断してください。


 

アイデア:

右上隅または左下隅から検索する、行ごとに削除する、または二分法を使用して検索する

コードの実装:

1  パブリック クラスTest4 {
 2      public  static  boolean find(int [] [] array、int target){
 3          if(array == null ){
 4              return  false ;
5          }
 6          int row = 0 ;
7          int column = array [0] .length-1 ;
8  
9          while(row <array.length && column> = 0 ){
 10              if(array [row] [column] == target){
 11                  return  true ;
12             }
 13              if(array [row] [column]> target){
 14                  column-- ;
15              } else {
 16                  行++ ;
17              }
 18          }
 19は         falseを返し ます20      }
 21  
22      public  static  void main(String [] args){
 23          int [] [] array = {{1,2,8,9}、{2,4,9,12}、{4,7,10 、13}、{6,8,11,15 }};
24          System.out.println(find(array、7 ));
25      }
26 }

演算結果:

おすすめ

転載: www.cnblogs.com/lkylin/p/12750982.html