Re: [閒聊] 每日LeetCode

作者: z2147483648 (溢傷了喇)   2023-11-01 14:49:42
※ 引述《wwndbk (snoopy養的狗)》之銘言:
: https://leetcode.com/problems/find-the-original-array-of-prefix-xor/
: 2433. Find The Original Array of Prefix Xor
: 給你一個陣列 pref,
: 要求出前面arr[0]到arr[n-1]的xor再xor哪個數可以變成pref[n]
: Input: pref = [5,2,0,3,1]
: Output: [5,7,2,3,2]
: Explanation: From the array [5,7,2,3,2] we have the following:
: - pref[0] = 5.
: - pref[1] = 5 ^ 7 = 2.
: - pref[2] = 5 ^ 7 ^ 2 = 0.
: - pref[3] = 5 ^ 7 ^ 2 ^ 3 = 3.
: - pref[4] = 5 ^ 7 ^ 2 ^ 3 ^ 2 = 1.
: 思路:
: arr[0]到arr[n-1]的xor就是 pref[n-1],
: 已知 pref[n-1] ^ arr[n] = pref[n] ,
: 交換過後可以知道arr[n] = pref[n-1] ^ pref[n]
幾乎同思路,不過要推導一下才發現
補上Python跟C++
========== Python
class Solution:
def findArray(self, pref: List[int]) -> List[int]:
ret = [0]*len(pref)
ret[0] = pref[0]
for i in range(1, len(pref)):
ret[i] = pref[i] ^ pref[i-1]
return ret
========== C++
class Solution {
public:
vector<int> findArray(vector<int>& pref) {
vector<int> ret(pref.size(), 0);
for (int i = 0; i < pref.size(); ++i)
{
if (i == 0) ret[i] = pref[i];
else
{
ret[i] = pref[i]^pref[i-1];
}
}
return ret;
}
};
==========
翹了好幾天,晚點補XDD

Links booklink

Contact Us: admin [ a t ] ucptt.com