📌  相关文章
📜  在数组中查找具有最大设置位的元素

📅  最后修改于: 2021-04-27 09:30:18             🧑  作者: Mango

给定一个数组arr [] 。任务是从arr []中查找具有最大设置位计数的元素。

例子:

方法:遍历数组,找到当前元素中设置位的计数,然后找到设置位最大数量的元素。

下面是上述方法的实现:

C++
// C++ implementation of the approach 
  
#include 
using namespace std; ;
  
// Function to return the element from the array 
// which has the maximum set bits 
int maxBitElement(int arr[], int n) 
{ 
  
    // To store the required element and 
    // the maximum set bits so far 
    int num = 0, max = -1; 
  
    for (int i = 0; i < n; i++) { 
  
        // Count of set bits in 
        // the current element 
        int cnt = __builtin_popcount(arr[i]); 
  
        // Update the max 
        if (cnt > max) { 
            max = cnt; 
            num = arr[i]; 
        } 
    } 
    return num; 
} 
  
// Driver code 
int main() 
{ 
    int arr[] = { 3, 2, 4, 7, 1, 10, 5, 8, 9, 6 }; 
    int n = sizeof(arr)/ sizeof(arr[0]) ; 
      
    cout << maxBitElement(arr, n) << endl; 
      
return 0 ;
  
// This code is contributed by AnkitRai01 
}


Java
// Java implementation of the approach
class GFG {
  
    // Function to return the element from the array
    // which has the maximum set bits
    static int maxBitElement(int arr[], int n)
    {
  
        // To store the required element and
        // the maximum set bits so far
        int num = 0, max = -1;
  
        for (int i = 0; i < n; i++) {
  
            // Count of set bits in
            // the current element
            int cnt = Integer.bitCount(arr[i]);
  
            // Update the max
            if (cnt > max) {
                max = cnt;
                num = arr[i];
            }
        }
        return num;
    }
  
    // Driver code
    public static void main(String[] args)
    {
        int arr[] = { 3, 2, 4, 7, 1, 10, 5, 8, 9, 6 };
        int n = arr.length;
        System.out.print(maxBitElement(arr, n));
    }
}


Python3
# Python 3 implementation of the approach 
  
# Function to return the element from the array 
# which has the maximum set bits 
def maxBitElement(arr, n):
      
    # To store the required element and 
    # the maximum set bits so far 
    num = 0
    max = -1
  
    for i in range(n):
          
        # Count of set bits in 
        # the current element 
        cnt = bin(arr[i]).count('1')
  
        # Update the max 
        if (cnt > max):
            max = cnt
            num = arr[i]
    return num
  
# Driver code 
if __name__ == '__main__':
    arr = [3, 2, 4, 7, 1, 
          10, 5, 8, 9, 6] 
    n = len(arr)
      
    print(maxBitElement(arr, n))
      
# This code is contributed by
# Surendra_Gangwar


C#
// C# implementation of the approach
using System;
  
class GFG
{
  
    // Function to return the element from the array
    // which has the maximum set bits
    static int maxBitElement(int []arr, int n)
    {
  
        // To store the required element and
        // the maximum set bits so far
        int num = 0, max = -1;
  
        for (int i = 0; i < n; i++)
        {
  
            // Count of set bits in
            // the current element
            int cnt = BitCount(arr[i]);
  
            // Update the max
            if (cnt > max)
            {
                max = cnt;
                num = arr[i];
            }
        }
        return num;
    }
    static int BitCount(int n)
    {
        int count = 0;
        while (n != 0)
        {
            count++;
            n &= (n - 1);
        }
        return count;
    } 
      
    // Driver code
    public static void Main(String[] args)
    {
        int []arr = { 3, 2, 4, 7, 1, 10, 5, 8, 9, 6 };
        int n = arr.Length;
        Console.Write(maxBitElement(arr, n));
    }
}
  
// This code contributed by Rajput-Ji


PHP
 $max)
        {
            $max = $cnt;
            $num = $arr[$i];
        }
    }
    return $num;
}
  
function BitCount($n)
{
    $count = 0;
    while ($n != 0)
    {
        $count++;
        $n &= ($n - 1);
    }
    return $count;
} 
      
// Driver code
$arr = array(3, 2, 4, 7, 1, 10, 5, 8, 9, 6 );
$n = count($arr);
echo(maxBitElement($arr, $n));
  
// This code contributed by PrinciRaj1992
?>


输出:
7