https://codility.com/programmers/lessons/14
最初、本当にO(1)のメモリ使用量でできるのかちょっと悩みましたが、良く問題を読むと、ペアにならないで残される要素は1つだけなんですね。
ですから、xorをざっと先頭からやっていけば、最後に残ったのがペアになっていない数です (A xor A = 0, and B xor 0 = Bですから)。
int solution(int A[], int N) {
int val = 0;
for (int i = 0; i < N; i++){
val ^= A[i];
}
return val;
}
0 件のコメント:
コメントを投稿