Re: [閒聊] 每日LeetCode

作者: involution (內卷是好文明)   2024-02-21 04:20:04
※ 引述《pandix (麵包屌)》之銘言:
: 延伸就是像前一篇用 XOR
: 可以發現排完後 i == nums[i] 只有一組會是 (少掉的數字k, n)
: 用 a^a == 0, a^0 == a 的性質就可以把全部的 index/value XOR 起來
: 最後剩下的數字就會是 k^n
: 再 XOR n 就會是 k 了
: 所以也不用換位置那麼麻煩直接 XOR 就好
a XOR a = 0 的這個性質叫做 involution :)
順帶一提, 1 XOR 2 XOR 3 XOR ... XOR n 有 O(1) 的算法
做法是 4 個一組, (0, 1, 2, 3) (4, 5, 6, 7), ...
會發現每一組都會是
xxxxxxx00
xxxxxxx01
xxxxxxx10
xxxxxxx11
的形式,所以四個 XOR 起來就是 0
因此 1 XOR ... XOR n 的結果就可以寫成
n % 4 == 0
作者: pandix (麵包屌)   2024-02-21 04:33:00
挖 大師
作者: shiliuye (十六)   2024-02-21 04:57:00
嗯嗯
作者: NTUEE2CS (EE轉CS)   2024-02-21 05:05:00
大師
作者: SecondRun (雨夜琴聲)   2024-02-21 07:19:00
:O
作者: JIWP (JIWP)   2024-02-21 08:18:00
大師

Links booklink

Contact Us: admin [ a t ] ucptt.com