タイトル説明
(同一の各一次元アレイの長さ)は、上から下に増加する順に、二次元アレイの各列を並べ替えるために、昇順ソートの順に左から右に、各行。完全な機能、例えば、二次元アレイと整数を入力し、配列の整数が含まれているか否かが判断されます。
ソリューション
行ずつ読んでより強引に加えて、ここで使用される方法は、左下隅から開始することです
右側に上向きに減少いくつかの左下隅、については、インクリメントされます。だから、簡単に行き来することができます
目標のために、数が現在よりも大きい場合は、右手に進み、上がるへのポインタ、以下です。等しい場合は、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;
}
}
その後、ブラシのタイトル