Bitwise Algorithms - Intermediate Practice Problems Last Updated : 23 Aug, 2024 Summarize Suggest changes Share Like Article Like Report Bitwise operations are fundamental to computer programming and problem-solving. At the intermediate level, you'll explore more complex bitwise algorithms and techniques to solve a variety of coding challenges. This includes topics like bit manipulation, number theory, and optimization using bitwise operations. The practice problems will cover a range of problems and require you to efficiently uses bitwise operators such as AND, OR, XOR, and bit shifting. By mastering these intermediate bitwise algorithms, you'll develop a deeper understanding of bitwise algorithms. Intermediate Practice Problems on Bitwise Algorithms: Swap bits in a given number Little and Big Endian Mystery Smallest of three integers without comparison operators A Boolean Array Puzzle Compute the integer absolute value (abs) without branching Compute the minimum or maximum of two integers without branching Find the two non-repeating elements in an array of repeating elements Write an Efficient C Program to Reverse Bits of a Number Smallest power of 2 greater than or equal to n Write a C program to find the parity of an unsigned integer Swap all odd and even bits Check if binary representation of a number is palindrome Generate n-bit Gray Codes Check if a given number is sparse or not Euclid’s Algorithm when % and / operations are costly Find nth Magic Number How to swap two bits in a given integer? Calculate square of a number without using *, / and pow() Generate 0 and 1 with 25% and 75% probability Find even occurring elements in an array of limited range Cyclic Redundancy Check and Modulo-2 Division Copy set bits in a range Check if a number is Bleak Count strings with consecutive 1’s Gray to Binary and Binary to Gray conversion Find Next Sparse Number Sum of bit differences among all pairs Sum of Bitwise And of all pairs in a given array Bitwise and (or &) of a range Length of the Longest Consecutive 1s in Binary Representation Pairs of complete strings in two sets of strings Find profession in a special family Print first n numbers with exactly two set bits Check if bits of a number has count of consecutive set bits in increasing order Subset sum queries using bitset Maximum 0’s between two immediate 1’s in binary representation Count all pairs of an array which differ in K bits Efficiently check if a string has duplicates without using any additional data structure Count trailing zero bits using lookup table Count smaller numbers whose XOR with n produces greater value Check divisibility in a binary stream Multiplication of two numbers with shift operator Determine if a string has all Unique Characters Reverse an array without using subtract sign ‘-‘ anywhere in the code Count numbers whose sum with x is equal to XOR with x Maximum XOR value of a pair from a range Numbers whose bitwise OR and sum with N are equal Change bits to make specific OR value Count smaller values whose XOR with x is greater than x Next greater integer having one more number of set bits Check if two numbers are bit rotations of each other or not Previous smaller integer having one less number of set bits Maximize a given unsigned number number by swapping bits at it’s extreme positions Set bits in N equals to M in the given range Count number of distinct sum subsets within given range Baum Sweet Sequence Minimum digits to remove to make a number Perfect Square Number whose sum of XOR with given array range is maximum Odd numbers in N-th row of Pascal’s Triangle Check if bitwise AND of any subset is power of two Space optimization using bit manipulations Fast inverse square root Find one extra character in a string Number of unique triplets whose XOR is zero Fibbinary Numbers (No consecutive 1s in binary) Fibbinary Numbers (No consecutive 1s in binary) – O(1) Approach Divide two integers without using multiplication, division and mod operator Check if binary string multiple of 3 using DFA Count set bits in an integer using Lookup Table Alternate bits of two numbers to create a new number Decimal representation of given binary string is divisible by 20 or not Check if actual binary representation of a number is palindrome Reverse actual bits of the given number Odious number Pernicious number Increment a number by one by manipulating the bits Python Slicing | Extract ‘k’ bits from a given position Print numbers in the range 1 to n having bits in alternate pattern Python | Count unset bits in a range Addition of two numbers without carry Josephus Problem Using Bit Magic XNOR of two numbers Maximum OR sum of sub-arrays of two different arrays Position of rightmost bit with first carry in sum of two binary Check whether the two numbers differ at one bit position only Queries on XOR of XORs of all subarrays Count unset bits in a range A backtracking approach to generate n bit Gray Codes Quotient and remainder dividing by 2^k (a power of 2) Print pair with maximum AND value in an array Smallest perfect power of 2 greater than n (without using arithmetic operators) Reverse bits using lookup table in O(1) time Variation in Nim Game Find largest element from array without using conditional operator Unset the last m bits Check if a number is divisible by 17 using bitwise operators Bitwise Sieve Largest number with binary representation is m 1’s and m-1 0’s Maximum AND value of a pair in an array Smallest number whose set bits are maximum in a given range Minimum flips to make all 1s in left and 0s in right | Set 1 (Using Bitmask) Find two numbers from their sum and XOR Print all subsequences of a string | Iterative Method Divisibility by 64 with removal of bits allowed Count set bits in a range Unique element in an array where all elements occur k times except one Find Unique pair in an array with pairs of numbers Check whether the number has only first and last bits set M-th smallest number having k number of set bits. Minimum bitwise operations to convert given a into b Minimum flips required to maximize a number with k set bits Count unset bits of a number Check whether all the bits are unset in the given range or not Toggle all bits after most significant bit Check if a number is power of 8 or not Position of rightmost common bit in two numbers Check whether all the bits are set in the given range Shuffle a pack of cards and answer the query Efficiently find first repeated character in a string without using any additional data structure in one traversal Change all even bits in a number to 0 Computing INT_MAX and INT_MIN with Bitwise operations Add minimum number to an array so that the sum becomes even Get the position of rightmost unset bit Count pairs with Odd XOR Position of rightmost different bit Check if all bits of a number are set XOR of all subarray XORs | Set 2 Case conversion (Lower to Upper and Vice Versa) of a string using BitWise operators in C/C++ Highest power of 2 less than or equal to given number Find Two Missing Numbers | Set 2 (XOR based solution) Find the maximum subset XOR of a given set Quick Links : 'Practice Problems' on Bit Magic 'Quiz' on Bit Magic 'Videos' on Bit Magic Advertise with us Next Article Bitwise Algorithms - Intermediate Practice Problems H harendrakumar123 Follow Similar Reads DSA Tutorial - Learn Data Structures and Algorithms DSA (Data Structures and Algorithms) is the study of organizing data efficiently using data structures like arrays, stacks, and trees, paired with step-by-step procedures (or algorithms) to solve problems effectively. Data structures manage how data is stored and accessed, while algorithms focus on 7 min read Quick Sort QuickSort is a sorting algorithm based on the Divide and Conquer that picks an element as a pivot and partitions the given array around the picked pivot by placing the pivot in its correct position in the sorted array. It works on the principle of divide and conquer, breaking down the problem into s 12 min read Merge Sort - Data Structure and Algorithms Tutorials Merge sort is a popular sorting algorithm known for its efficiency and stability. It follows the divide-and-conquer approach. It works by recursively dividing the input array into two halves, recursively sorting the two halves and finally merging them back together to obtain the sorted array. Merge 14 min read Data Structures Tutorial Data structures are the fundamental building blocks of computer programming. They define how data is organized, stored, and manipulated within a program. Understanding data structures is very important for developing efficient and effective algorithms. What is Data Structure?A data structure is a st 2 min read Bubble Sort Algorithm Bubble Sort is the simplest sorting algorithm that works by repeatedly swapping the adjacent elements if they are in the wrong order. This algorithm is not suitable for large data sets as its average and worst-case time complexity are quite high.We sort the array using multiple passes. After the fir 8 min read Breadth First Search or BFS for a Graph Given a undirected graph represented by an adjacency list adj, where each adj[i] represents the list of vertices connected to vertex i. Perform a Breadth First Search (BFS) traversal starting from vertex 0, visiting vertices from left to right according to the adjacency list, and return a list conta 15+ min read Binary Search Algorithm - Iterative and Recursive Implementation Binary Search Algorithm is a searching algorithm used in a sorted array by repeatedly dividing the search interval in half. The idea of binary search is to use the information that the array is sorted and reduce the time complexity to O(log N). Binary Search AlgorithmConditions to apply Binary Searc 15 min read Insertion Sort Algorithm Insertion sort is a simple sorting algorithm that works by iteratively inserting each element of an unsorted list into its correct position in a sorted portion of the list. It is like sorting playing cards in your hands. You split the cards into two groups: the sorted cards and the unsorted cards. T 9 min read Array Data Structure Guide In this article, we introduce array, implementation in different popular languages, its basic operations and commonly seen problems / interview questions. An array stores items (in case of C/C++ and Java Primitive Arrays) or their references (in case of Python, JS, Java Non-Primitive) at contiguous 4 min read Sorting Algorithms A Sorting Algorithm is used to rearrange a given array or list of elements in an order. For example, a given array [10, 20, 5, 2] becomes [2, 5, 10, 20] after sorting in increasing order and becomes [20, 10, 5, 2] after sorting in decreasing order. There exist different sorting algorithms for differ 3 min read Article Tags : Bit Magic DSA Practice Tags : Bit Magic Like