Bird
Raised Fist0
DSA Typescriptprogramming~5 mins

Two Non Repeating Elements in Array Using XOR in DSA Typescript - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does XOR operation do when applied between two same numbers?
XOR of two same numbers is 0 because each bit cancels out. For example, 5 ^ 5 = 0.
Click to reveal answer
intermediate
Why do we use XOR to find two non-repeating elements in an array?
Because XOR of all elements cancels out repeating pairs, leaving XOR of the two unique elements. This helps us separate and find them.
Click to reveal answer
intermediate
How do you find a bit that differs between two numbers using XOR?
XOR of two numbers has bits set where they differ. Finding the rightmost set bit in XOR helps separate the two numbers.
Click to reveal answer
intermediate
What is the purpose of dividing elements into two groups based on a set bit in XOR?
It separates the two unique numbers into different groups so XOR in each group gives one unique number.
Click to reveal answer
beginner
What is the time complexity of finding two non-repeating elements using XOR?
The time complexity is O(n) because we scan the array a few times with simple XOR operations.
Click to reveal answer
What is the XOR of a number with 0?
AThe number itself
B0
C1
DUndefined
If XOR of all elements in an array is X, what does X represent when exactly two elements are unique?
AXOR of the two unique elements
BSum of all elements
CProduct of unique elements
D0
How do you find the rightmost set bit in a number X?
A~X
BX | (-X)
CX ^ (-X)
DX & (-X)
Why do we divide elements into two groups based on a set bit in XOR?
ATo sort the array
BTo find the sum of elements
CTo separate the two unique numbers
DTo reverse the array
What is the overall time complexity of the XOR method to find two unique elements?
AO(log n)
BO(n)
CO(n^2)
DO(1)
Explain step-by-step how XOR helps find two non-repeating elements in an array where all others repeat twice.
Think about how XOR cancels pairs and how bit differences help separate unique numbers.
You got /4 concepts.
    Describe how to find the rightmost set bit of a number and why it is important in this problem.
    Focus on bitwise operations and their role in grouping.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of using XOR operation to find two non-repeating elements in an array?
      easy
      A. To sort the array in ascending order
      B. To count the frequency of each element
      C. To cancel out all repeating elements and isolate the unique ones
      D. To reverse the array elements

      Solution

      1. Step 1: Understand XOR properties

        XOR of two same numbers is 0, and XOR with 0 is the number itself.
      2. Step 2: Apply XOR on array elements

        XORing all elements cancels out repeating ones, leaving XOR of two unique elements.
      3. Final Answer:

        To cancel out all repeating elements and isolate the unique ones -> Option C
      4. Quick Check:

        XOR cancels duplicates = isolate unique elements [OK]
      Hint: XOR cancels pairs, leaving unique elements [OK]
      Common Mistakes:
      • Thinking XOR sorts the array
      • Using XOR to count frequencies
      • Assuming XOR reverses elements
      2. Which of the following TypeScript code snippets correctly initializes the XOR variable to start finding two unique elements?
      easy
      A. let xor = 1;
      B. let xor = 0;
      C. let xor = -1;
      D. let xor = null;

      Solution

      1. Step 1: Identify initial XOR value

        XOR with 0 returns the number itself, so start with 0.
      2. Step 2: Confirm initialization

        Initializing xor as 0 allows proper XOR accumulation over array elements.
      3. Final Answer:

        let xor = 0; -> Option B
      4. Quick Check:

        Start XOR with 0 for correct accumulation [OK]
      Hint: Initialize XOR with 0 to accumulate correctly [OK]
      Common Mistakes:
      • Starting XOR with 1 changes results
      • Using null or undefined causes errors
      • Starting XOR with -1 gives wrong output
      3. What will be the output of the following TypeScript code?
      const arr = [2, 3, 7, 9, 2, 3];
      let xor = 0;
      for (const num of arr) {
        xor ^= num;
      }
      console.log(xor);
      medium
      A. 0
      B. 9
      C. 7
      D. 14

      Solution

      1. Step 1: XOR all elements in array

        Calculate XOR stepwise: 0^2=2, 2^3=1, 1^7=6, 6^9=15, 15^2=13, 13^3=14.
      2. Step 2: Final XOR value

        The final XOR after all elements is 14.
      3. Final Answer:

        14 -> Option D
      4. Quick Check:

        XOR all elements = 14 [OK]
      Hint: XOR all elements stepwise to find final value [OK]
      Common Mistakes:
      • Stopping XOR early
      • Incorrect XOR calculation order
      • Confusing XOR with addition
      4. Identify the error in this TypeScript code snippet that tries to find two unique elements using XOR:
      const arr = [4, 1, 2, 1, 2, 5];
      let xor = 0;
      for (let i = 0; i <= arr.length; i++) {
        xor ^= arr[i];
      }
      console.log(xor);
      medium
      A. Loop condition should be i < arr.length, not i <= arr.length
      B. XOR operator should be & instead of ^
      C. Variable xor should be initialized to 1
      D. Array elements should be converted to strings before XOR

      Solution

      1. Step 1: Check loop boundary

        Loop uses i <= arr.length which causes out-of-bounds access at last iteration.
      2. Step 2: Correct loop condition

        Change to i < arr.length to avoid accessing undefined element.
      3. Final Answer:

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

        Loop index must be less than array length [OK]
      Hint: Use i < length to avoid out-of-bounds errors [OK]
      Common Mistakes:
      • Using wrong loop boundary causing runtime error
      • Confusing XOR with AND operator
      • Initializing xor incorrectly
      5. Given the array [6, 1, 3, 6, 1, 5], which two numbers are the non-repeating elements found using XOR method?
      hard
      A. [3, 5]
      B. [6, 1]
      C. [1, 3]
      D. [5, 6]

      Solution

      1. Step 1: XOR all elements

        6^1=7, 7^3=4, 4^6=2, 2^1=3, 3^5=6 (final XOR = 6).
      2. Step 2: Find rightmost set bit of XOR

        Rightmost set bit of 6 (binary 110) is 2 (binary 010).
      3. Step 3: Divide elements into two groups and XOR separately

        Group 1 (bit set): 6, 3, 6 -> XOR = 3; Group 2 (bit not set): 1, 1, 5 -> XOR = 5.
      4. Final Answer:

        [3, 5] -> Option A
      5. Quick Check:

        Two unique elements = [3, 5] [OK]
      Hint: Use rightmost set bit to separate and XOR groups [OK]
      Common Mistakes:
      • Not separating elements by set bit
      • Mixing order of unique elements
      • Incorrect XOR calculations
      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