私は課題に取り組んでいますが、いくつかの質問に対する回答が得られません。
私は尋ねられました:
入力: 1 から N までの整数のみを含む長さ N の配列 A
出力: TRUE - A に重複が含まれる、FALSE - そうでない場合。
テストケースに合格するクラスを作成しました。
public class ArrayOfIntegers {
public boolean isArrayContainsDuplicates(int [] intArray){
int arraySize = intArray.length;
long expectedOutPut = arraySize*(arraySize+1)/2;
long actualOutput = 0;
for(int i =0 ; i< arraySize; i++){
actualOutput = actualOutput + intArray[i];
}
if(expectedOutPut == actualOutput)
return false;
return true;
}
}
これに関するさらなる質問
答えを提供し、入力配列 A を破壊しないことは可能ですか?
私は配列を破壊していません。それで、私がしたことは正しいですか?
アルゴリズムの時間と空間の複雑さを分析しますか?
したがって、重複する要素を見つけたらすぐにループを中断する必要がある for ループについて何かを書く必要がありますか。率直に言って、私は時間と空間の複雑さの概念についてあまり明確ではありません。
時間と空間の両方で O(n) は可能ですか?
n は任意の数になる可能性があるため、これは No にする必要があります。繰り返しますが、O(n) についてはよくわかりません。
ありがとう