bit_operation

137.Single-Number-IIarrow-up-right (H-) 260.Single-Number-IIIarrow-up-right (H) 371.Sum-of-Two-Integers (H) 318.Maximum-Product-of-Word-Lengthsarrow-up-right (M+) 342.Power-of-Four (H) 957.Prison-Cells-After-N-Daysarrow-up-right (H) 1461.Check-If-a-String-Contains-All-Binary-Codes-of-Size-K (TBD) 1521.Find-a-Value-of-a-Mysterious-Function-Closest-to-Targetarrow-up-right (H-)

Common tasks

  • get bit, set bit, clear bit and update bit

boolean getBit( int num, int i )
{
  return ((num & (1 << i)) != 0 );
}

int setBit( int num, int i ) 
{ 
  return num | (1 << i); 
}

int clearBit( int num, int i ) 
{ 
  int mask = ~(1 << i); 
  return num & mask; 
}

// clear all bits from the most significant bit through i (inclusive) 
int clearBitsMSBthroughI( int num, int i ) 
{ 
  int mask = (1 << i) - 1; 
  return num & mask; 
}

// clear all bits from i (inclusive) through 0 
int clearBitsIthrough0( int num, int i ) 
{ 
  int mask = ~(-1 >>> (31 - i)); 
  return num & mask; 
}

// set the ith bit to a value v 
int updateBit(int num, int i, boolean bitIs1) 
{ 
  int value = bitIs1 ? 1 : 0; 
  int mask = ~(1 << i); 
  
  return (num & mask) | (value << i); 
}

XOR

136.Single-Numberarrow-up-right (M) 268.Missing-Numberarrow-up-right (H-) 1310.XOR-Queries-of-a-Subarrayarrow-up-right (M) 1442.Count-Triplets-That-Can-Form-Two-Arrays-of-Equal-XORarrow-up-right (M+) 1506.Find-Root-of-N-Ary-Treearrow-up-right (M+) 1734.Decode-XORed-Permutationarrow-up-right (M+) 1738.Find-Kth-Largest-XOR-Coordinate-Valuearrow-up-right (M+) 1835.Find-XOR-Sum-of-All-Pairs-Bitwise-ANDarrow-up-right (M)

Bit Mask

1239.Maximum-Length-of-a-Concatenated-String-with-Unique-Charactersarrow-up-right (M+) 1284.Minimum-Number-of-Flips-to-Convert-Binary-Matrix-to-Zero-Matrixarrow-up-right (M+) 1452.People-Whose-List-of-Favorite-Companies-Is-Not-a-Subset-of-Another-Listarrow-up-right (H-) 1601.Maximum-Number-of-Achievable-Transfer-Requestsarrow-up-right (H-) 1755.Closest-Subsequence-Sumarrow-up-right (H) 1774.Closest-Dessert-Costarrow-up-right (M) 2002.Maximum-Product-of-the-Length-of-Two-Palindromic-Subsequencesarrow-up-right

Last updated