C++程序 寻找数组中最少出现的元素
给定一个数组,找出其中出现次数最少的元素。如果有多个元素出现次数相同,则任选一个打印即可。
示例:
输入:arr[] = {1, 3, 2, 1, 2, 2, 3, 1}
输出:3
3在给定的数组中出现的最少次数。
输入:arr[] = {10, 20, 30}
输出:10或20或30
一个 简单的解决方案 是运行两个循环。外部循环一个一个地挑选所有元素。内部循环找出挑选的元素的频率并与迄今为止的最小值进行比较。这个解决方案的时间复杂度是O(n 2)。
更好的解决方案是排序。我们首先对数组进行排序,然后线性遍历数组。
输出:
时间复杂度: O(n Log n)
辅助空间: O(1)
一个 高效的解决方案 是使用哈希。我们创建一个哈希表,将元素和它们的频率计数作为键值对进行存储。最后,我们遍历哈希表并打印具有最小值的键。
输出:
时间复杂度: O(n)
辅助空间: O(n)