作者oin1104 (是oin的說)
看板Marginalman
標題Re: [閒聊] 每日leetcode
時間Fri Nov 8 15:49:41 2024
題目:
在限定的bit範圍裡面
用一個k來xor 0~i的數字
讓數字最大
請問對於每個i 他的k是多少
思路:
先把每個0~i的xor都弄出來
然後再用一個都是1個東西來xor他
就可以知道那個地方的k是什麼了
```cpp
class Solution {
public:
vector<int> getMaximumXor(vector<int>& nums, int maximumBit)
{
int now = 0;
int n = nums.size();
vector<int> res(n,0);
for(int i = 0 ; i < n ; i ++)
{
now ^= nums[i];
}
int oin = pow(2,maximumBit) - 1;
for(int i = n-1 ; i >= 0 ; i --)
{
res[n-i-1] = now^oin;
now ^= nums[i];
}
return res;
}
};
```
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.216.162.123 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1731052183.A.399.html
推 Sougou: 別卷純軟了 11/08 15:51
噓 JIWP: 你有什麼用 11/08 15:58
→ Meaverzt: 大師 11/08 16:37