findUniqueAmongRepeats function

int findUniqueAmongRepeats(
  1. List<int> list,
  2. int repeatCount
)

Finds the unique element in a list where every other element appears exactly repeatCount times. Assumes exactly one unique element exists. Works for integers using bitwise operations. Throws ArgumentError if repeatCount < 2.

Implementation

int findUniqueAmongRepeats(final List<int> list, final int repeatCount) {
  if (repeatCount < 2) {
    throw ArgumentError('repeatCount must be at least 2');
  }
  if (list.isEmpty) {
    throw RangeError('List cannot be empty');
  }

  int result = 0;
  for (int i = 0; i < 32; i++) {
    int sumBits = 0;
    for (final int num in list) {
      sumBits += (num >> i) & 1;
    }
    if (sumBits % repeatCount != 0) {
      result |= 1 << i;
    }
  }
  return result;
}