「ソードフィンガーオファー」シリーズ二次元配列でワンサーチ

「ソードバリューオファー」の最初のレッスン

毎日1つの質問、一歩前進。

2次元配列でのルックアップ

トピック
2次元配列(各1次元配列は同じ長さ)では、各行が左から右に昇順で並べ替えられ、各列が上から下に昇順で並べ替えられます。
関数を完成させ、そのような2次元配列と整数を入力して、配列に整数が含まれているかどうかを判断してください。

アイデア
1.被験者は主に2次元配列の走査を調べますが、配列走査の一般的な方法は何ですか?
2.最も簡単なのはforループです。この質問はforループで解決され
ます。3。2次元配列は2つのforループでトラバースされます。外部のforは行を受け取り、内部のforは列を受け取ります。3
。次にブールを定義しますタイプの基本的なタイプ、初期値はfalse
4.配列内のデータが整数と等しい場合、判断を行い、ブール型はtrueに変更されて戻ります。そうでない場合、初期値は直接返されます
。5 . 言うまでもなく、コードに移動します...

コード

/*
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,
每一列都按照从上到下递增的顺序排序。
请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
 */
public class DoubleArrayDemo01 {
    
    
    public boolean Find(int target, int [][] array) {
    
    
        boolean a = false;//定义初始布尔值
        for (int i = 0; i < array.length; i++) {
    
    //外层循环——行
            for (int j = 0;j<array.length;j++){
    
    //内层循环——列
                if(array[i][j]==target)//判断相等
                    a = true;//若相等,赋值为true
            }
        }
        return a;//返回布尔值
    }
}

結論:この質問では、主に2次元配列のトラバーサルを調べます。何千もの方法があり、ループトラバーサルに使用することを好みます。

おすすめ

転載: blog.csdn.net/weixin_43419256/article/details/105231822