2次元配列を見つけるために、安全プランを証明する最初のタイトル

タイトル説明

(同一の各一次元アレイの長さ)は、上から下に増加する順に、二次元アレイの各列を並べ替えるために、昇順ソートの順に左から右に、各行。完全な機能、例えば、二次元アレイと整数を入力し、配列の整数が含まれているか否かが判断されます。

ソリューション

行ずつ読んでより強引に加えて、ここで使用される方法は、左下隅から開始することです

右側に上向きに減少いくつかの左下隅、については、インクリメントされます。だから、簡単に行き来することができます

目標のために、数が現在よりも大きい場合は、右手に進み、上がるへのポインタ、以下です。等しい場合は、trueを返します。

この特定の境界条件は、0、最大値よりも大きいターゲット、それは最小よりも小さいと判断されることに注意してください。

public class Solution {
    public boolean Find(int target,int[][] array){
        int len =array.length;
        //array.length == 0                         判断{}
        //(array.length ==1)&&(array[0].length ==0) 判断{{}}
        if(array.length == 0 ||((array.length ==1)&&(array[0].length ==0)))
            return false;
        //target比最大的大,比最小的小,那么直接false
        if(target <array[0][0] ||target >array[len-1][len-1]){
            return false;
        }
        int i=len-1,j =0;
        while(i >= 0 && j <=len-1){
            if(array[i][j] ==target){
                return true;
            }else if(target >array[i][j]){
                j++;
            }else if(target <array[i][j]){
                i--;
            }
        }
        //if(array[i][j] ==target)
        //return true;
        //else
        //return false;
        return false;
    }
}

その後、ブラシのタイトル

おすすめ

転載: blog.csdn.net/blood_ing_/article/details/93297948