g2601_2700.s2683_neighboring_bitwise_xor.Solution Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-java21 Show documentation
Show all versions of leetcode-in-java21 Show documentation
Java-based LeetCode algorithm problem solutions, regularly updated
package g2601_2700.s2683_neighboring_bitwise_xor;
// #Medium #Array #Bit_Manipulation #2023_09_12_Time_2_ms_(100.00%)_Space_59.9_MB_(62.03%)
/**
* 2683 - Neighboring Bitwise XOR\.
*
* Medium
*
* A **0-indexed** array `derived` with length `n` is derived by computing the **bitwise XOR** (⊕) of adjacent values in a **binary array** `original` of length `n`.
*
* Specifically, for each index `i` in the range `[0, n - 1]`:
*
* * If `i = n - 1`, then `derived[i] = original[i] ⊕ original[0]`.
* * Otherwise, `derived[i] = original[i] ⊕ original[i + 1]`.
*
* Given an array `derived`, your task is to determine whether there exists a **valid binary array** `original` that could have formed `derived`.
*
* Return _**true** if such an array exists or **false** otherwise._
*
* * A binary array is an array containing only **0's** and **1's**
*
* **Example 1:**
*
* **Input:** derived = [1,1,0]
*
* **Output:** true
*
* **Explanation:** A valid original array that gives derived is [0,1,0].
*
* derived[0] = original[0] ⊕ original[1] = 0 ⊕ 1 = 1
*
* derived[1] = original[1] ⊕ original[2] = 1 ⊕ 0 = 1
*
* derived[2] = original[2] ⊕ original[0] = 0 ⊕ 0 = 0
*
* **Example 2:**
*
* **Input:** derived = [1,1]
*
* **Output:** true
*
* **Explanation:** A valid original array that gives derived is [0,1].
*
* derived[0] = original[0] ⊕ original[1] = 1
*
* derived[1] = original[1] ⊕ original[0] = 1
*
* **Example 3:**
*
* **Input:** derived = [1,0]
*
* **Output:** false
*
* **Explanation:** There is no valid original array that gives derived.
*
* **Constraints:**
*
* * `n == derived.length`
* * 1 <= n <= 105
* * The values in `derived` are either **0's** or **1's**
**/
public class Solution {
public boolean doesValidArrayExist(int[] derived) {
int xor = 0;
for (int j : derived) {
xor = xor ^ j;
}
return xor == 0;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy