Bird
Raised Fist0
DSA Cprogramming~10 mins

Find the Only Non Repeating Element Using XOR in DSA C - Execution Trace

Choose your learning style10 modes available
Concept Flow - Find the Only Non Repeating Element Using XOR
Start with result = 0
↓
For each element in array
↓
Apply XOR: result = result XOR element
↓
Repeat for all elements
↓
Result holds the non-repeating element
↓
Return result
We start with zero and XOR it with every element in the array. Pairs cancel out, leaving only the unique element.
Execution Sample
DSA C
int findUnique(int arr[], int n) {
    int result = 0;
    for (int i = 0; i < n; i++) {
        result ^= arr[i];
    }
    return result;
}
This code finds the only element that does not repeat by XORing all elements.
Execution Table
StepOperationCurrent ElementResult Before XORResult After XORVisual State
1Initialize resultN/AN/A0result=0
2XOR with arr[0]202result=2
3XOR with arr[1]321result=1 (2^3=1)
4XOR with arr[2]213result=3 (1^2=3)
5XOR with arr[3]437result=7 (3^4=7)
6XOR with arr[4]374result=4 (7^3=4)
7XOR with arr[5]440result=0 (4^4=0)
8XOR with arr[6]505result=5 (0^5=5)
9End of arrayN/A55Unique element found: 5
💡 All pairs XOR to 0, leaving the unique element 5 in result.
Variable Tracker
VariableStartAfter Step 2After Step 3After Step 4After Step 5After Step 6After Step 7After Step 8Final
resultN/A21374055
iN/A0123456End
Key Moments - 3 Insights
Why does XORing pairs of the same number result in zero?
Because XOR of a number with itself is zero, as shown in steps 6 and 7 where result XOR 4 twice cancels out to zero.
Why do we start result with zero?
Zero is the identity for XOR, so XORing zero with any number returns that number, as in step 2.
How does XOR help find the unique element?
All repeating elements cancel out because XORing a number twice is zero, leaving only the unique element, as seen in the final result 5.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the value of result after XORing with arr[3]?
A3
B7
C4
D1
💡 Hint
Check Step 5 in the execution_table where arr[3] = 4 is XORed.
At which step does the result become zero during the XOR process?
AStep 6
BStep 8
CStep 7
DStep 5
💡 Hint
Look at the 'Result After XOR' column in Step 7.
If the array had no unique element, what would the final result be?
AZero
BThe first element
CThe last element
DUndefined
💡 Hint
Pairs XOR to zero, so no unique element means result ends at zero (see exit_note).
Concept Snapshot
Find unique element by XORing all array elements.
XOR pairs cancel out to zero.
Start with result = 0.
Final result is the unique element.
Works only if every other element repeats exactly twice.
Full Transcript
This concept finds the only non-repeating element in an array by using XOR operation. We start with a variable result set to zero. Then we XOR result with each element in the array one by one. Because XOR of a number with itself is zero, all repeating elements cancel out. The only element that does not repeat remains in result at the end. This method is efficient and uses constant extra space.

Practice

(1/5)
1. What does the XOR operation help find in an array where every element except one repeats exactly twice?
easy
A. The smallest element
B. The sum of all elements
C. The largest element
D. The only element that does not repeat

Solution

  1. Step 1: Understand XOR properties

    XOR of a number with itself is 0, and XOR with 0 is the number itself.
  2. Step 2: Apply XOR on all elements

    XORing all elements cancels out duplicates, leaving only the unique element.
  3. Final Answer:

    The only element that does not repeat -> Option D
  4. Quick Check:

    XOR cancels duplicates = unique element [OK]
Hint: XOR all elements; duplicates vanish, unique remains [OK]
Common Mistakes:
  • Thinking XOR sums elements
  • Assuming XOR finds max or min
  • Confusing XOR with addition
2. Which of the following is the correct syntax to XOR two integers a and b in C?
easy
A. a | b
B. a & b
C. a ^ b
D. a + b

Solution

  1. Step 1: Identify XOR operator in C

    The caret symbol (^) is the XOR operator in C.
  2. Step 2: Confirm correct usage

    Using a ^ b performs bitwise XOR between integers a and b.
  3. Final Answer:

    a ^ b -> Option C
  4. Quick Check:

    ^ is XOR operator in C [OK]
Hint: Use ^ for XOR in C, not & or | [OK]
Common Mistakes:
  • Using & instead of ^
  • Using | instead of ^
  • Using + instead of ^
3. What is the output of the following C code?
int arr[] = {2, 3, 5, 4, 5, 3, 4};
int result = 0;
for(int i = 0; i < 7; i++) {
    result ^= arr[i];
}
printf("%d", result);
medium
A. 2
B. 5
C. 3
D. 4

Solution

  1. Step 1: XOR all elements in the array

    Calculate XOR stepwise: 0^2=2, 2^3=1, 1^5=4, 4^4=0, 0^5=5, 5^3=6, 6^4=2.
  2. Step 2: Final XOR result is 2

    After XORing all elements, duplicates cancel out, leaving 2.
  3. Final Answer:

    2 -> Option A
  4. Quick Check:

    XOR cancels duplicates = 2 [OK]
Hint: XOR all; duplicates vanish, unique stays [OK]
Common Mistakes:
  • Not XORing all elements
  • Miscomputing XOR steps
  • Assuming sum or max instead
4. Identify the error in this C code snippet that tries to find the unique element using XOR:
int arr[] = {1, 2, 1, 3, 2};
int result = arr[0];
for(int i = 1; i <= 5; i++) {
    result ^= arr[i];
}
printf("%d", result);
medium
A. Loop condition should be < 5, not <= 5
B. Initialize result to 0 instead of arr[0]
C. Use & operator instead of ^
D. Array size is incorrect

Solution

  1. Step 1: Check loop bounds

    Array has 5 elements indexed 0 to 4; loop runs i from 1 to 5 inclusive, causing out-of-bounds access at i=5.
  2. Step 2: Correct loop condition

    Change loop to i < 5 to avoid accessing arr[5] which is invalid.
  3. Final Answer:

    Loop condition should be < 5, not <= 5 -> Option A
  4. Quick Check:

    Array index out of bounds fixed by i < 5 [OK]
Hint: Loop till i < array size, not <= [OK]
Common Mistakes:
  • Using <= instead of < in loop
  • Ignoring array bounds
  • Wrong operator used
5. Given an array where every element repeats twice except one element which repeats thrice, can XOR alone find the unique element? If not, what is the correct approach?
hard
A. Yes; XOR works for any repetition count
B. No; use bit counting and modulo 3 to find the unique element
C. No; use sum of elements minus sum of unique elements
D. Yes; XOR twice and then XOR thrice elements

Solution

  1. Step 1: Understand XOR limitation

    XOR works only when duplicates appear exactly twice; it fails if duplicates appear thrice.
  2. Step 2: Use bit counting method

    Count bits in all numbers, take modulo 3 of each bit count to isolate the unique element's bits.
  3. Final Answer:

    No; use bit counting and modulo 3 to find the unique element -> Option B
  4. Quick Check:

    XOR fails if duplicates appear thrice; bit count works [OK]
Hint: XOR only works for duplicates twice; use bit count mod 3 otherwise [OK]
Common Mistakes:
  • Assuming XOR works for any duplicate count
  • Trying to XOR thrice duplicates
  • Ignoring bit counting approach
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard