📌  相关文章
📜  数组中最不频繁元素的C++程序(1)

📅  最后修改于: 2023-12-03 15:26:11.239000             🧑  作者: Mango

数组中最不频繁元素的C++程序
介绍

该C++程序使用哈希表来确定数组中最不频繁的元素。它遍历给定数组中的每个元素,并计算元素出现的次数。然后,使用哈希表来存储每个元素及其相应的计数。最后,它找出哈希表中计数最低的元素,并将其作为最不频繁元素返回。

程序
#include <iostream>
#include <unordered_map>
#include <vector>
using namespace std;

int main() {
  vector<int> v { 1, 2, 3, 4, 1, 4, 3, 2, 5 };
  unordered_map<int, int> freq;
  
  for (const auto& i : v) {
    freq[i]++;
  }
  
  int least_freq = INT_MAX;
  int least_freq_num = INT_MAX;
  
  for (const auto& pair : freq) {
    int num = pair.first;
    int count = pair.second;
    
    if (count < least_freq) {
      least_freq = count;
      least_freq_num = num;
    }
  }
  
  cout << "Least frequent number: " << least_freq_num << endl;
  
  return 0;
}
上述代码的输出结果为:

Least frequent number: 5
说明
  1. 创建一个名为 v 的 vector,并向其添加所需的元素。
  2. 创建一个名为 freq 的 unordered_map。
  3. 遍历 vector 中的每个元素,并以元素值作为键,以出现次数作为值,在 freq 哈希表上进行递增计数。
  4. 创建一个名为 least_freq 的变量,将它的初始值设置为 INT_MAX。这将确保它的值始终小于其他计数值,并充当查找最不频繁元素的初始值。
  5. 同样,将 least_freq_num 的初始值设置为 INT_MAX。
  6. 遍历 freq 哈希表中的每个键值对。对于每个键值对:
    1. 如果该键值对的计数小于 least_freq 的值,则更新 least_freq 和 least_freq_num 的值。
  7. 输出 least_freq_num 值作为最不频繁元素。
总结

哈希表可用于快速查找最不频繁的元素。此程序演示了如何使用 std::unordered_map 创建哈希表,并使用其来计算元素出现次数和查找最不频繁的元素。