LeetCode Problem

How to Solve Single Number II

In this problem, you're tasked with finding a single number in an array where every element appears three times except one. The solution requires a linear runtime and constant space, demanding the use of bit manipulation techniques to efficiently find the unique element.

GhostInterview Help

Need help with Single Number II without spending extra time grinding it?

GhostInterview can read Single Number II from a screenshot, generate the answer path, explain the complexity, and support solver-first interview workflows when you need direct help fast.

Screenshot Input

Capture the prompt fast instead of rewriting the problem by hand.

Answer + Complexity

Get the solution path, trade-offs, and complexity summary in one pass.

Stealth Workflow

Stay outside captured layers on supported screen-share workflows.

Problem #137Array plus Bit ManipulationReviewed 2026-03-08
Difficulty
Medium
Primary pattern
Array plus Bit Manipulation
Answer-first problem summary
Step-by-step approach and complexity
GhostInterview solver workflow

In this problem, you're tasked with finding a single number in an array where every element appears three times except one. The solution requires a linear runtime and constant space, demanding the use of bit manipulation techniques to efficiently find the unique element.

Problem Statement

Given an array of integers where every element appears exactly three times except for one, which appears once, your task is to find that unique element. You are required to implement a solution that works in linear time and uses constant extra space.

Your solution should avoid using hashmaps or other space-intensive data structures, relying instead on bit manipulation to efficiently find the unique number in the array.

Examples

Example 1

Input: nums = [2,2,3,2]

Output: 3

Example details omitted.

Example 2

Input: nums = [0,1,0,1,0,1,99]

Output: 99

Example details omitted.

Constraints

  • 1 <= nums.length <= 3 * 104
  • -231 <= nums[i] <= 231 - 1
  • Each element in nums appears exactly three times except for one element which appears once.

Solution Approach

Bitwise XOR and AND

The most efficient way to approach this problem is to use bitwise operations. We can maintain a counter that tracks the occurrence of bits at each position. By iterating over the array and performing bitwise XOR and AND, we can isolate the unique number. The key idea is that elements appearing three times cancel each other out, leaving the single element.

Tracking Bit Counts

We can track the number of times each bit appears across all elements. Using this method, we count the frequency of bits, and at the end, any bit that appears a multiple of three can be discarded, while the bits of the single number remain.

Constant Space Solution

The algorithm must use constant space, meaning we cannot rely on extra data structures like arrays or hashmaps. This can be achieved by using just a few integer variables to track the current and previous bit occurrences while processing the array.

Complexity Analysis

MetricValue
TimeDepends on the final approach
SpaceDepends on the final approach

The time complexity of the solution is O(n), where n is the length of the input array, as each element is processed once. The space complexity is O(1), since only a constant number of variables are used to track the bits, and no additional data structures are created.

What Interviewers Usually Probe

  • Look for an efficient solution using bit manipulation techniques to handle large arrays within time and space constraints.
  • Candidates should avoid using hashmaps or arrays, focusing instead on bitwise operations to solve the problem.
  • Pay attention to how well the candidate handles the edge cases and optimizes the solution for constant space usage.

Common Pitfalls or Variants

Common pitfalls

  • Relying on hashmaps or arrays, which violate the constant space requirement.
  • Not correctly handling the bitwise operations, leading to incorrect results when tracking occurrences of the bits.
  • Failing to consider edge cases such as when the array has only one element or all elements are negative.

Follow-up variants

  • Implementing the solution using a different set of bitwise operations or bit tracking techniques.
  • Using different approaches like mathematical formulas or recursion instead of bit manipulation.
  • Handling arrays of varying sizes and input constraints, ensuring the solution works under all edge cases.

How GhostInterview Helps

  • GhostInterview's explanation emphasizes the need to efficiently solve problems with linear time complexity and constant space, directly applying to this problem's requirements.
  • The solver highlights the core idea of using bit manipulation to find the single element, ensuring candidates stay focused on the right approach.
  • GhostInterview offers helpful insights and hints, ensuring the candidate avoids common pitfalls while maintaining optimal performance.

Topic Pages

FAQ

What is the best approach for solving the Single Number II problem?

The best approach involves using bitwise operations, particularly XOR and AND, to track the occurrence of bits across all numbers. This method ensures constant space usage and linear time complexity.

Can I use extra space to solve the Single Number II problem?

No, the problem specifically requires a solution that uses only constant extra space. Using hashmaps or arrays would violate this constraint.

What if there are multiple unique numbers in the array?

The problem guarantees that only one element will appear once, while all others appear three times. If there were multiple unique numbers, the problem statement would be different.

How does bit manipulation help in solving this problem?

Bit manipulation allows us to track individual bit occurrences across all numbers in the array. By using XOR and AND operations, we can isolate the unique number efficiently.

What edge cases should I consider when solving this problem?

Edge cases include arrays with only one element, arrays with negative numbers, and arrays where the unique number is at the start or end of the array. Make sure your solution handles these scenarios correctly.

GhostInterview Solver

Need direct help with Single Number II instead of spending more time grinding it?

Download GhostInterview when you want a LeetCode solver, not another long practice loop. Capture Single Number II from a screenshot, get the answer path and complexity, and use supported stealth workflows that stay outside captured layers.

Screenshot Input

Capture the prompt fast instead of rewriting the problem by hand.

Answer + Complexity

Get the solution path, trade-offs, and complexity summary in one pass.

Stealth Workflow

Stay outside captured layers on supported screen-share workflows.