Re: [閒聊] 每日leetcode已回收
260. Single Number III
很直覺的全部做xor答案以外會被消掉
接下來就是想辦法找出這兩數 這部分就有點卡住
xor出來該位值1代表兩數該位相異
依照該位將數列分成兩部分
因為同樣的數也會被分在一起 所以xor後就是答案
別問我怎麼想到的==
還沒看討論不知道有沒有更好的做法
class Solution {
public:
vector<int> singleNumber(vector<int>& nums) {
int sum = 0;
for(int n : nums){
sum ^= n;
}
int base = 1;
while(!(sum & base))
base <<= 1;
int even = 0, odd = 0;
for(int n : nums){
if(n & base)
even ^= n;
else
odd ^= n;
}
return {odd, even};
}
};
--
悠閒的 平凡的 瑣碎的 無意義的
https://i.imgur.com/sMJiZp3.jpg

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.36.50.252 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1717127870.A.21E.html
→
05/31 12:04,
1年前
, 1F
05/31 12:04, 1F
→
05/31 12:05,
1年前
, 2F
05/31 12:05, 2F
→
05/31 12:11,
1年前
, 3F
05/31 12:11, 3F
推
05/31 13:01,
1年前
, 4F
05/31 13:01, 4F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 301 之 1554 篇):