Given an array of N numbers, the task is to find the maximum sum that can be obtained by adding numbers with the same number of set bits.
Input: 32 3 7 5 27 28
Input: 2 3 8 5 6 7
- Traverse in the array and count the number of set bits for every element.
- Initialize an array for 32 bits, assuming the number to have a maximum of 32 set bits.
- Iterate in the array and add the array element to the position which indicates the number of set bits.
- Traverse and find the maximum sum and return it.
Below is the implementation of the above approach:
Time Complexity: O(N * 32)
Auxiliary Space: O(N)
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
- Count number of bits changed after adding 1 to given N
- Find the largest number smaller than integer N with maximum number of set bits
- Smallest number whose set bits are maximum in a given range
- Alternate bits of two numbers to create a new number
- Closest (or Next) smaller and greater numbers with same number of set bits
- Maximum number of set bits count in a K-size substring of a Binary String
- Print numbers having first and last bits as the only set bits
- Check if bits of a number has count of consecutive set bits in increasing order
- Toggle bits of a number except first and last bits
- Sum of numbers with exactly 2 bits set
- Print first n numbers with exactly two set bits
- Minimum integer with at most K bits set such that their bitwise AND with N is maximum
- Find element with the maximum set bits in an array
- Count total set bits in all numbers from 1 to n
- Count total set bits in all numbers from 1 to n | Set 2
- Count total set bits in all numbers from 1 to N | Set 3
- Maximum Sum of Products of two arrays by toggling adjacent bits
- Count total unset bits in all the numbers from 1 to N
- Check if bits in range L to R of two numbers are complement of each other or not
- Print numbers in the range 1 to n having bits in alternate pattern
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.
Improved By : Mithun Kumar