Painless
PermCheck
タスク説明
N個の整数で構成される空でない配列Aが与えられます。
順列は、1からNまでの各要素を1回だけ含むシーケンスです。
たとえば、次のような配列A:
A [0] = 4
A [1] = 1
A [2] = 3
A [3] = 2
は順列ですが、配列Aは次のようになります。
A [0] = 4
A [1] = 1
A [2] = 3
値2が欠落しているため、は順列ではありません。
目標は、配列Aが順列であるかどうかを確認することです。
関数を書く:
class solution {public int solution(int [] A); }
つまり、配列Aが与えられると、配列Aが順列である場合は1を返し、そうでない場合は0を返します。
たとえば、次のような配列Aが与えられます。
A [0] = 4
A [1] = 1
A [2] = 3
A [3] = 2
関数は1を返す必要があります。
次のような配列Aが与えられます。
A [0] = 4
A [1] = 1
A [2] = 3
関数は0を返す必要があります。
次の仮定のための効率的なアルゴリズムを記述します。
- Nは[1..100,000]の範囲内の整数です。
- 配列Aの各要素は、[1..1,000,000,000]の範囲内の整数です。
解く
Program
PermCheckSolution.java
public int solution(int[] A) {
java.util.Arrays.sort(A);
for (int i = 0; i < A.length; i++) {
if (A[i] == i + 1) continue;
else return 0;
}
return 1;
}
Detected time complexity:
O(N) or O(N * log(N))
jUnit
Report
Candidate Report: trainingVGBR4Z-S47