LeetCode 137は一度しかIIデジタル表示されます
ソートはまだに頼ることができました。(n)はOの余分なスペースと時間の複雑性を開くために必要な、単一のデータ比較水ので、私はいくつかの時間の考えを費やしていないが、
デジタルデエンファシス、Oの時間複雑度(n)は、余分なスペースと、その後にスタートビット・コンピューティングから、開きません
要素が一度だけ表示され、残りの3つの要素のそれぞれは、あらゆるのみの合計で分割した後、二進数に各分割を入れて表示され3x
たり3x + 1
、後の%3
仕事のデエンファシスが完了した後に
これにより問題の意味は、ビット演算の設計により、なる加法器
と、%3
デジタル回路の動作
最大数がされているので3
、少なくとも必要な2bit
業務を達成するために
動作のために提供される低数はa
、高くb
、入力v
各演算の終了時に低いan
高として、bn
C言語バージョンを使用ビット算術記号
特定の設計に関しては、それは自由な遊びです
容易に概略的なブラインドドローは次のとおり、任意のデジタル回路図の仕様に従っていませんでした_(:з「∠)_
以来an
導出は、実質的に同じ、名前のみでan
誘導された部分
式に図
c = a ^ v
d = a & v
e = b | d
f = c ^ e
an = c & f
bn = e & f
an = c & f
= c & (c^e)
= c & (~e)
= c & (~(b|d))
= (a^v) & (~b) & (~d)
= (a^v) & (~b) & (~(a&v))
= (a^v) & (~b) & (a|v)
= (a^v) & (~b)
C
int singleNumber(int* nums, int numsSize){
int a = 0, b = 0;
for (int i = 0; i < numsSize; ++i) {
a = (a^nums[i]) & ~b;
b = (~a & nums[i]) ^ b;
}
return a;
}