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